仅当使用xpath存在子节点时才获取父属性xml

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

我有以下xml:

<root>
    <steps>
        <step Name="test1" >
        <stepDetails Name = "exception" />
        <steps Name="1" />
        </step>
        <step Name="test2" >
        <steps Name="2" />
        </step>
        <step Name="test3" >
        <steps Name="3" />
        </step>
        <step Name="test4" >
        <stepDetails Name = "valid" />
        <steps Name="1" />
        </step>
    </steps>
<root>

我想得到所有步骤的名称,除了那些将StepDetails名称称为“异常”的步骤。请注意,StepDetails并非出现在所有步骤中。

在这个例子中,我应该接收输出test2,test3和test3

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

xpath表达:

//step[./stepDetails/@Name != 'exception' or not(./stepDetails)]/@Name
© www.soinside.com 2019 - 2024. All rights reserved.