Xpath寻找属性

时间:2018-01-17 18:17:45

标签: 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中存储任何变量,我就无法理解如何解决它们。

1 个答案:

答案 0 :(得分:2)

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

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

如果父{1}}节点的name值位于来自@id个节点的person列表中,则应该允许您获取@refId member group

的儿童