有沒有辦法在節點中查找特定值,然後返回其所有兄弟值?使用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