xml - Xpath 寻找属性

标签 xml xpath

所以我有以下 XML:

<root>
    <people>

        <person id="a01">
            <name>Jack</name>
        </person>

        <person id="a02">
            <name>George</name>
        </person>


    </people>

    <groups>
        <group groupId="g01">
            <member refId="a01" />
            <member refId="a02" />
        </group>
    </groups>
</root>

我正在寻找 groupId g01 的组中所有人员的姓名。我想做的是:

//name[@id=//group[@groupId='g01']/member/@refId]/text()

但显然它不起作用。

查找属性时能否使用表达式?那我该如何解决我的问题呢?

我真的很困惑,因为当出现 xpath 问题时,它总是涉及 idrefs,如果我无法在 xpath 中存储任何变量,我只是无法理解如何解决它们。

最佳答案

我不确定我是否正确理解了您的问题,所以请告诉我以下解决方案是否无法按预期工作

//people/person[@id=//group[@groupId="g01"]/member/@refId]/name/text()

如果父 person 节点的 @id 值在 @refId 列表中,这应该允许您获取 name来自 member 节点的 值,这些值是具有 @groupId="g01"

group 的子节点

关于xml - Xpath 寻找属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48307532/

相关文章:

java - XPath lower-case() 获取小写值的集合

java - 在 Java SimpleXML 库中设置路径时如何使用 XML 元素的值?

sql - 查找具有包含 xml 字符串值的字段的所有表

xml - Hudson XML 错误——没有名为 dom.minidom 的模块

python - 由于 XML 依赖项不匹配,无法安装 R 包

android - 如何在滚动 tablayout android 时滚动整个 Activity

java - Xpath - 评估函数返回 javax.xml.transform.TransformerException

xslt - 如何使用xslt合并元素?

java - Xpaths查询问题

xml - 如何使用 XSLT 从 XML 中删除某些属性