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



考虑这个XML(Adobe Premiere的.prproj文件的一部分,这些文件是gzip XML文件(:

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

我喜欢按照 Sequence/MarkerOwner/Markers 中的ObjectRef来使用 ObjectID 93 访问 Markers 元素。

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

以下 XPath 应返回Markers元素ObjectID其中属性与/PremiereData/Sequence/MarkerOwner/Markers ObjectRef匹配:

//Markers[@ObjectID=/PremiereData/Sequence/MarkerOwner/Markers/@ObjectRef]

demo

请注意,谓词中的/PremiereData引用它的根元素以 / 开头(将其与 ./PremiereData 或仅搜索上下文元素的子元素 MarkersPremiereData 形成对比,命名为 PremiereData (。

最新更新