通过引用元素排序的属性值的XPath?

时间:2016-05-12 21:40:39

标签: xml xpath

我有一个XML文件,其中包含项目列表,ID属性以及对这些ID的引用列表。我想检索每个项目的引用项目。

我的示例XML文件如下所示:

<test>
    <items>
        <item id="a" val="A" />
        <item id="b" val="B" />
        <item id="c" val="C" />
        <item id="d" val="D" />
        <item id="e" val="E" />
    </items>
    <refs>
        <ref id="c" />
        <ref id="b" />
        <ref id="b" />
    </refs>
</test>

我已尝试过表达式

/test/items/item[@id=/test/refs/ref/@id]/@val

但它并没有真正做我想要的:它(显然)返回项目[B,C]而不是[C,B,B]。

1 个答案:

答案 0 :(得分:1)

XPath 1.0

无法完成。

XPath 2.0

for $i in //ref/@id return //item[@id=$i]/@val

将按要求返回[C, B, B]