作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在尝试解析一些 XML 内容,在本例中是一些产品:
<PRODUCTS>
<PRODUCT>
<NAME><![CDATA[Some name]]></NAME>
<CATEGORIES>
<CATEGORY>
<NAME><![CDATA[Category 1]]></NAME>
</CATEGORY>
<CATEGORY>
<NAME><![CDATA[Category 2]]></NAME>
</CATEGORY>
</CATEGORIES>
</PRODUCT>
<PRODUCT>
<NAME><![CDATA[Some other name]]></NAME>
<CATEGORIES>
<CATEGORY>
<NAME><![CDATA[Category 1]]></NAME>
</CATEGORY>
<CATEGORY>
<NAME><![CDATA[Category 2]]></NAME>
</CATEGORY>
</CATEGORIES>
</PRODUCT>
</PRODUCTS>
如果我将以上内容放入 doc
变量并在每个产品中调用 NAME
:
doc.css("PRODUCT").each do |product|
puts product.css("NAME").size # => 3
end
我还获取了每个产品的嵌套 NAME
元素。
如何只获取未嵌套的NAME
?我知道 product.at_css("NAME")
只返回第一个元素,但我的问题不是如何获取第一个元素,而是如何获取未嵌套的元素。
最佳答案
您可以使用 >
仅选择作为 PRODUCT
的直接子元素的 NAME
元素:
doc.css("PRODUCT").each do |product|
puts product.css("> NAME")
end
这将输出以下内容:
<NAME><![CDATA[Some name]]></NAME>
<NAME><![CDATA[Some other name]]></NAME>
关于ruby - 如何只检索未嵌套的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48792086/
我是一名优秀的程序员,十分优秀!