Я бы хотел использовать Nokogiri для вставки узлов в XML-документ. Nokogiri использует класс Nokogiri::XML::Builder
для вставки или создания нового XML.
Если я создаю XML с использованием метода new
, я могу создать красивый отформатированный 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, это можно сделать с помощью метода 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>
Я что-то упустил, чтобы правильно отформатировать?