我想提取 XML 文件的部分内容,并记下我提取了该文件中的某些部分,例如“此处提取了某些内容”。
我正在尝试使用 Nokogiri 来做到这一点,但似乎并没有真正记录如何:
- 删除 a 的所有子项
<Nokogiri::XML::Element>
- 改变
inner_text
那个完整元素的
有什么线索吗?
Nokogiri 让这一切变得非常简单。使用这个文件 http://www.alistapart.com/d/usingxml/xml_uses_a.html例如,以下代码将查找所有vitamins
标签,删除他们的孩子(以及孩子的孩子等),并将其内部文本更改为“孩子已删除。”:
require 'nokogiri'
io = File.open('sample.xml', 'r')
doc = Nokogiri::XML(io)
io.close
doc.search('//vitamins').each do |node|
node.children.remove
node.content = 'Children removed.'
end
A given food
节点将看起来像这样:
<food>
<name>Avocado Dip</name>
<mfr>Sunnydale</mfr>
<serving units="g">29</serving>
<calories total="110" fat="100"/>
<total-fat>11</total-fat>
<saturated-fat>3</saturated-fat>
<cholesterol>5</cholesterol>
<sodium>210</sodium>
<carb>2</carb>
<fiber>0</fiber>
<protein>1</protein>
<vitamins>
<a>0</a>
<c>0</c>
</vitamins>
<minerals>
<ca>0</ca>
<fe>0</fe>
</minerals>
</food>
to this:
<food>
<name>Avocado Dip</name>
<mfr>Sunnydale</mfr>
<serving units="g">29</serving>
<calories total="110" fat="100"/>
<total-fat>11</total-fat>
<saturated-fat>3</saturated-fat>
<cholesterol>5</cholesterol>
<sodium>210</sodium>
<carb>2</carb>
<fiber>0</fiber>
<protein>1</protein>
<vitamins>Children removed.</vitamins>
<minerals>
<ca>0</ca>
<fe>0</fe>
</minerals>
</food>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)