8
我想使用Nokogiri將節點插入到XML文檔中。 Nokogiri使用Nokogiri::XML::Builder
類來插入或創建新的XML。插入標籤時的Nokogiri和XML格式化
如果我創建使用new
方法XML,我能夠創造不錯的,格式化XML:
builder = Nokogiri::XML::Builder.new do |xml|
xml.product {
xml.test "hi"
}
end
puts builder
輸出以下:
<?xml version="1.0"?>
<product>
<test>hi</test>
</product>
這是偉大的,但我要做的是將上面的XML添加到現有文檔中,而不是創建新文檔。按照引入nokogiri文檔,這可以通過使用Builder的with
方法,像這樣做:
builder = Nokogiri::XML::Builder.with(document.at('products')) do |xml|
xml.product {
xml.test "hi"
}
end
puts builder
當我這樣做,但是,XML都被投入到與無壓痕一行。它看起來像這樣:
<products><product><test>hi</test></product></products>
我是否錯過了某些東西才能正確格式化?
我一直在尋找一個標誌,有一天,當我看到你的問題,但分散剃了犛牛。 +1給你找到答案併發布,+1給Nokogiri搖擺。 – 2010-10-11 21:50:00
可以理解。那些犛牛不會刮鬍子(還)。 – michaelmichael 2010-10-12 17:05:03
請注意,在Ruby 1.9中,您可以用稍微簡潔的方式指定單個noblanks標誌:'doc = Nokogiri :: XML(xml,&:noblanks)' – Phrogz 2011-10-19 15:42:57