首页 > 解决方案 > 元素匹配全局ID的XPath?

问题描述

我试图找到没有成功的例子

这是一个带有 XML 文档的示例:

<?xml version="1.0" encoding="UTF-8" ?>
<root>
    <name>vlabresvsanvc01</name>
    <adapterKindKey>VMWARE</adapterKindKey>
    <resourceKindKey>VMwareAdapter Instance</resourceKindKey>
    <resourceStatusStates>
        <adapterInstanceId>85966e95-1ds5-4551-aecb-d707c9453efe</adapterInstanceId>
        <resourceStatus>DATA_RECEIVING</resourceStatus>
        <resourceState>STARTED</resourceState>
        <statusMessage></statusMessage>
    </resourceStatusStates>
    <resourceStatusStates>
        <adapterInstanceId>95f3530e-a526-4a21-bd92-c0f391a8c2ad</adapterInstanceId>
        <resourceStatus>DATA_RECEIVING</resourceStatus>
        <resourceState>STARTED</resourceState>
        <statusMessage>Trust Established.</statusMessage>
    </resourceStatusStates>
    <identifier>95f3530e-a526-4a21-bd92-c0f391a8c2ad</identifier>
</root>

我只想为等于标识符 ( )/root/resourceStatusStates/resourceStatusadapterInstanceId兄弟 ( ) 选择 resourceStatus ( )。95f3530e-a526-4a21-bd92-c0f391a8c2ad/root/identifier

事实上,我想知道这是否可以在 XPath 2.0 中表达出来。

标签: xmlxpathxpath-2.0

解决方案


这个 XPath,

/root/resourceStatusStates[adapterInstanceId = /root/identifier]/resourceStatus

将选择resourceStatus同级元素adapterInstanceId等于/root/identifier,

<resourceStatus>DATA_RECEIVING</resourceStatus>

按照要求。

另请参阅使用 XPath 根据兄弟节点的值匹配节点


推荐阅读