【问题标题】:XPath for attribute values ordered by referring elements?通过引用元素排序的属性值的 XPath?
【发布时间】:2016-05-13 06:07:28
【问题描述】:

我有一个 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]。

【问题讨论】:

    标签: xml xpath


    【解决方案1】:

    XPath 1.0

    做不到。

    XPath 2.0

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

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

    【讨论】:

    • 因为我不认为 Python 的 lxml 支持 XPath 1.0 以上的任何东西,我想我必须用多个 xpath 来做。
    猜你喜欢
    • 2015-04-28
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多