如何向 Nokogiri XML 生成器添加属性?
How to add an attribute to Nokogiri XML builder?
这就是我想要做的:
xml = Nokogiri::XML::Builder.new do |x|
x.root do
x.book do
x.attribute('isbn', 12345) # Doesn't work!
x.text("Don Quixot")
end
end
end.doc
我知道我可以做到x.book(isbn: 12345)
,但这不是我想要的。我想在 do/end
块中添加一个属性。有可能吗?
预期的XML:
<root>
<book isbn="12345">Don Quixot</book>
</root>
像这样给节点添加属性
xml = Nokogiri::XML::Builder.new do |x|
x.root do
x.book(isbn: 1235) do
x.text('Don Quixot')
end
end
end.doc
或者,在重新阅读您的问题后,您可能想在 do 块中进一步将其添加到父级。在那种情况下,这有效:
xml = Nokogiri::XML::Builder.new do |x|
x.root do
x.book do
x.parent.set_attribute('isbn', 12345)
x.text('Don Quixot')
end
end
end.doc
生成:
<?xml version="1.0"?>
<root>
<book isbn="1235">Don Quixot</book>
</root>
这就是我想要做的:
xml = Nokogiri::XML::Builder.new do |x|
x.root do
x.book do
x.attribute('isbn', 12345) # Doesn't work!
x.text("Don Quixot")
end
end
end.doc
我知道我可以做到x.book(isbn: 12345)
,但这不是我想要的。我想在 do/end
块中添加一个属性。有可能吗?
预期的XML:
<root>
<book isbn="12345">Don Quixot</book>
</root>
像这样给节点添加属性
xml = Nokogiri::XML::Builder.new do |x|
x.root do
x.book(isbn: 1235) do
x.text('Don Quixot')
end
end
end.doc
或者,在重新阅读您的问题后,您可能想在 do 块中进一步将其添加到父级。在那种情况下,这有效:
xml = Nokogiri::XML::Builder.new do |x|
x.root do
x.book do
x.parent.set_attribute('isbn', 12345)
x.text('Don Quixot')
end
end
end.doc
生成:
<?xml version="1.0"?>
<root>
<book isbn="1235">Don Quixot</book>
</root>