xml - XPath:通过非父选择器寻址值

标签 xml xpath

如何通过 XPath 来寻址选择器不在其上方(但在同一级别)的元素?

例如我想要名称为 B 的项目的值。不确定是否要这样做,因为名称和值不处于父关系中。

<root>
    <item>
        <name>A</name>
        <value>1</value>
    </item>
    <item>
        <name>B</name>
        <value>2</value>
    </item>
    <item>
        <name>C</name>
        <value>3</value>
    </item>
</root>

最佳答案

这可以简单地完成如下:

//item[./name='B']/value

这字面意思是:查找包含 name = "B"的直接子元素的 item 元素 -> 查找此 item 元素直接子元素
如果 name 和/或 value 不是 item 的直接子代,上面的表达式将是

//item[.//name='B']//value

另一种方法,如果每个item内部只有单个name和单个value可以是:

//item[name='B']/following-sibling::value

关于xml - XPath:通过非父选择器寻址值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70565165/

相关文章:

java - 多个重复的子元素 xml

android - 布局内容不适合屏幕

json - wso2中xml到json的转换

php - 使用 PHP、simplexml_load_file 和 Xpath 从 XML 文件返回唯一值

soap - Hive UDF for SOAP XPath?

c# - 如何使用 LINQ to XML 将多级 xml 转换为对象?

c# - 使用 XSD.exe 从多个 XSD 模式生成 c# 类

xml - 如何使用 xml starlet 选择 xml 值

xml - 在xslt中合并两个字符串

java - 在 Java 中使用 XPath 解析 XML