2010-03-17 19 views

Trả lời

9
require "rexml/document" 
include REXML 

source ='<some><nested><xml>value</xml></nested></some>' 
doc = Document.new(source) 
doc.write(targetstr = "", 2) #indents with 2 spaces 
puts targetstr 

CáC#write viết bất cứ điều gì mà sẽ đưa < < (string), vì vậy đây là hợp lệ quá:

doc.write($stdout, 2) 
doc.write(an_open_file, 2) 
4

chỉ nhận thấy rằng builder có một tùy chọn indent để làm điều này . nhưng xin vui lòng gửi câu trả lời của bạn là tốt. không phải ai cũng muốn làm điều này đều sử dụng builder. cũng có thể có giải pháp nhanh hơn cho chuỗi xml mà bạn không tự tạo.

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