gpt4 book ai didi

ruby - 使用 Nokogiri 插入和删除 XML 节点和元素

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:38 26 4
gpt4 key购买 nike

我想提取 XML 文件的一部分,并记下我提取了该文件中的某些部分,例如“这里提取了一些东西”。

我正尝试用 Nokogiri 来做这件事,但似乎并没有真正记录如何:

  1. 删除<Nokogiri::XML::Element> 的所有 child
  2. 更改inner_text那个完整的元素

有什么线索吗?

最佳答案

Nokogiri 让这一切变得非常简单。使用this document例如,以下代码将找到所有 vitamins 标签,删除它们的子标签(以及子标签的子标签等),并将它们的内部文本更改为“Children removed”。

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

给定的 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>

为此:

<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>

关于ruby - 使用 Nokogiri 插入和删除 XML 节点和元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274783/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com