我想明白为什么count给我5?
如果我是根本元素并且我想要了解我的孩子,它应该给我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>
Run Code Online (Sandbox Code Playgroud)
得到5的结果是因为根节点下有五个子<element>节点.有两个<name>节点和三个文本节点,每个节点由空格组成; 一个在开口<element>和第<name>一个之间,一个在两者之间<names>,一个在第二个<name>和结束之间</element>:
doc.root.children.each do |c|
p c
end
Run Code Online (Sandbox Code Playgroud)
输出:
#<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">
Run Code Online (Sandbox Code Playgroud)
如果noblanks在解析时使用该选项Nokogiri将不包含这些空白节点:
doc = Nokogiri::XML(open('link..to....element.xml')) { |c| c.noblanks }
Run Code Online (Sandbox Code Playgroud)
现在doc.root.children.count将相等2,只包含两个<name>元素节点.
| 归档时间: |
|
| 查看次数: |
3403 次 |
| 最近记录: |