gpt4 book ai didi

ruby - 使用 Nokogiri 计算 xml 中的元素

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:28 25 4
gpt4 key购买 nike

我想了解为什么 count 给我 5

如果我在根元素上并且我想知道我的 child ,它应该给我 2

doc = Nokogiri::XML(open('link..to....element.xml'))
root = doc.root.children.count
puts root



<element>
<name>Married with Children</name>
<name>Married with Children</name>
</element>

最佳答案

你得到 5结果是因为根下有五个子节点 <element>节点。有两个<name>节点和三个文本节点,每个节点由空格组成;一开间<element>第一个<name> ,两者之间的一个<names> , 和第二个之间的一个 <name>和结束</element> :

doc.root.children.each do |c|
p c
end

输出:

#<Nokogiri::XML::Text:0x80544a04 "\n  ">
#<Nokogiri::XML::Element:0x80544900 name="name" children=[#<Nokogiri::XML::Text:0x8054470c "Married with Children">]>
#<Nokogiri::XML::Text:0x80544554 "\n ">
#<Nokogiri::XML::Element:0x80544478 name="name" children=[#<Nokogiri::XML::Text:0x80544284 "Married with Children">]>
#<Nokogiri::XML::Text:0x805440cc "\n">

如果您使用 noblanks解析 Nokogiri 时的选项将不包括这些空白节点:

doc = Nokogiri::XML(open('link..to....element.xml')) { |c| c.noblanks }

现在doc.root.children.count将等于 2 , 只有两个 <name>将包含元素节点。

关于ruby - 使用 Nokogiri 计算 xml 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21533624/

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