2015-03-26 11 views
6

Tôi có tệp XML đơn giản sau đây.Cách lưu các thay đổi của tôi trong tệp XML bằng Nokogiri

<?xml version="1.0"?> 
<user-mapping> 

</user-mapping> 

Tôi muốn thêm nội dung vào ánh xạ người dùng bằng Nokogiri.

Đây là mã của tôi:

f = File.open("exam.xml") 
doc = Nokogiri::XML(f) 
puts doc.to_s 
map = doc.at_css "user-mapping" 
map.content = "Gholam" 
puts map.to_s 
doc.to_xml 
f.close 

Đầu ra của puts là:

<?xml version="1.0"?> 
<user-mapping> 

</user-mapping> 
<user-mapping>Gholam</user-mapping> 

Nhưng khi mã kết thúc, không có gì đã thay đổi trong file XML thực tế. Có ai có thể giải thích cho tôi cách lưu các thay đổi của tôi trong tệp XML không?

+0

Viết các tập tin vào đĩa sử dụng ước của Ruby chuẩn. Không có tính năng đặc biệt nào trong Nokogiri để viết các tập tin. –

Trả lời

11

Đọc file vào một tài liệu XML trong bộ nhớ, sửa đổi tài liệu khi cần thiết, sau đó serialize tài liệu trở lại vào tập tin ban đầu:

filename = 'exam.xml' 
xml = File.read(filename) 
doc = Nokogiri::XML(xml) 
# ... make changes to doc ... 
File.write(filename, doc.to_xml) 
+0

Hoặc 'File.write (tên tệp, doc.to_xml)' –

+0

@ theTinMan: vâng, ý tưởng tốt =) – maerics

Các vấn đề liên quan