如何使用 XPath 获取两个节点之间的文本
how to get the text between two nodes using XPath
当节点具有相同的文本时,我不知道如何获取值。
这是 xml 数据。
<dict>
<key>VALUE1</key>
<dict>
<key>us</key>
<string>Zubehör</string>
<key>fr</key>
<string>Accessories</string>
</dict>
<key>VALUE2</key>
<dict>
<key>us</key>
<string>test2</string>
<key>fr</key>
<string>test</string>
</dict>
</dict>
如何通过搜索文本 Accessories
来获取值 VALUE1
?真正的名单要大得多。给出的唯一文本是 Accessories
。并且我需要找到它父级的同级文本 --> VALUE1
这是一种可能的方式,给定这样的描述和那个小样本 XML :
//dict[dict/string = 'Accessories']/key
虽然我们不能确定,这将与实际 XML 一起正常工作,因为发布的示例 XML 包含 仅 目标元素.
更新:
要响应更新后的 XML 示例,您可以尝试这种方式:
//dict/dict[string = 'Accessories']/preceding-sibling::key[1]
xpath 定位包含关键字字符串的 dict
元素,然后 return 前面的第一个兄弟 key
元素。
当节点具有相同的文本时,我不知道如何获取值。
这是 xml 数据。
<dict>
<key>VALUE1</key>
<dict>
<key>us</key>
<string>Zubehör</string>
<key>fr</key>
<string>Accessories</string>
</dict>
<key>VALUE2</key>
<dict>
<key>us</key>
<string>test2</string>
<key>fr</key>
<string>test</string>
</dict>
</dict>
如何通过搜索文本 Accessories
来获取值 VALUE1
?真正的名单要大得多。给出的唯一文本是 Accessories
。并且我需要找到它父级的同级文本 --> VALUE1
这是一种可能的方式,给定这样的描述和那个小样本 XML :
//dict[dict/string = 'Accessories']/key
虽然我们不能确定,这将与实际 XML 一起正常工作,因为发布的示例 XML 包含 仅 目标元素.
更新:
要响应更新后的 XML 示例,您可以尝试这种方式:
//dict/dict[string = 'Accessories']/preceding-sibling::key[1]
xpath 定位包含关键字字符串的 dict
元素,然后 return 前面的第一个兄弟 key
元素。