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

时间:2018-03-05 10:18:53

标签: xml xpath xpath-2.0

我有以下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

1 个答案:

答案 0 :(得分:2)

xpath 表达式:

//step[./stepDetails/@Name != 'exception' or not(./stepDetails)]/@Name