XML XPath:如何引用由另一个项的属性值标识的项?

时间:2017-03-21 11:50:53

标签: xml xpath

考虑这个XML(Adobe Premiere的.prproj文件的一部分,它们是gzip压缩的XML文件):

<PremiereData> <!-- root object -->
    <Sequence>
        <MarkerOwner>
            <Markers ObjectRef="93"/>
        </MarkerOwner>
    ...
    <Markers ObjectID="93">

我希望按照Markers中的ObjectRef与ObjectID 93联系Sequence/MarkerOwner/Markers元素。

我可以使用单个Xpath执行此操作,还是需要编写首先获取ObjectRef值的代码,以便使用该值创建第二个路径?

1 个答案:

答案 0 :(得分:0)

以下XPath应返回Markers元素,其中ObjectID属性与ObjectRef的{​​{1}}匹配:

/PremiereData/Sequence/MarkerOwner/Markers

<强> demo

请注意,谓词中的//Markers[@ObjectID=/PremiereData/Sequence/MarkerOwner/Markers/@ObjectRef] 引用了根元素,以/PremiereData开头(与/./PremiereData对比,后者将搜索上下文元素PremiereData,名为Markers)。