gpt4 book ai didi

ruby - 使用 Nokogiri 获取节点的兄弟节点

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

有没有办法在一个节点中找到一个特定的值,然后返回它所有的兄弟值?

例如,我想查找包含 ID 5678 的 id 节点,然后获取与 ID 5678 关联的电子邮件地址和所有图像。

Nokogiri::XML.parse(File.open('info.xml'))

这是一个示例 XML 文件。

<xmlcontainer>
<details>
<id>1234</id>
<email>sdfsdf@sdasd.com</email>
<image>images/1.jpg</image>
<image>images/2.jpg</image>
<image>images/3.jpg</image>
</details>
<details>
<id>5678</id>
<email>zzzz@zzz.com</email>
<image>images/4.jpg</image>
<image>images/5.jpg</image>
</details>
<details>
<id>9011</id>
<email>aaaa@aaa.com</email>
<image>images/6.jpg</image>
<image>images/7.jpg</image>
</details>
</xmlcontainer>

最佳答案

可以使用~,这是css的通用兄弟选择器:

doc.search('id[text()="5678"] ~ *').map &:text
#=> ["zzzz@zzz.com", "images/4.jpg", "images/5.jpg"]

将 css 与 xml 一起使用有点奇怪,但它更容易查看(比 xpath)。

关于ruby - 使用 Nokogiri 获取节点的兄弟节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16828178/

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