匹配全局id的元素的XPath?

问题描述 投票:1回答:1

我试着找过例子,但没有成功

这里有一个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>

我只想选择resourceStatus (/root/resourceStatusStates/resourceStatus) adapterInstanceId 兄弟姐妹( 95f3530e-a526-4a21-bd92-c0f391a8c2ad ),等于标识符(/root/identifier).

事实上,我想知道是否可以用XPath 2.0来表达。

xml xpath xpath-2.0
1个回答
1
投票

这个XPath。

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

将选择 resourceStatus 同族元素 adapterInstanceId 相当于 /root/identifier,

<resourceStatus>DATA_RECEIVING</resourceStatus>

按要求。

另见 用XPath根据兄弟姐妹的值来匹配一个节点。

© www.soinside.com 2019 - 2024. All rights reserved.