有没有办法在节点中查找特定值,然后返回其所有兄弟值?使用Nokogiri获取节点的兄弟节点
例如,我想找到找到包含ID 5678 id
节点,然后获得的电子邮件地址和ID 5678
Nokogiri::XML.parse(File.open('info.xml'))
相关联的所有图像下面是一个示例XML文件。
<xmlcontainer>
<details>
<id>1234</id>
<email>[email protected]</email>
<image>images/1.jpg</image>
<image>images/2.jpg</image>
<image>images/3.jpg</image>
</details>
<details>
<id>5678</id>
<email>[email protected]</email>
<image>images/4.jpg</image>
<image>images/5.jpg</image>
</details>
<details>
<id>9011</id>
<email>[email protected]</email>
<image>images/6.jpg</image>
<image>images/7.jpg</image>
</details>
</xmlcontainer>
您可以通过用'find {}'替换'select {}。first'来加强它,或者您可以更直接地通过'doc.at('details:has(id [text()= “5678”])')' – pguardiario
@pguardiario搜索文档的很多方法!感谢您的提示! –
不客气!在这种情况下,xpath实际上可能会更简单:'doc.at('// id [text()='5678“]/..')' – pguardiario