gpt4 book ai didi

ruby - 如何只检索未嵌套的元素?

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

我正在尝试解析一些 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/

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