XPath根据子节点的存在获取节点名称

时间:2016-11-08 13:54:34

标签: xml xpath

我有以下节点:

<resource>
    <DataField1>
         <label>...</label>
         <alert>...</alert>
     </DataField1>
     <DataField2>
         <label>...</label>
     </DataField2>
     <DataField3>
        <label>...</label>
        <alert>...</alert>
     </DataField3>
</resource>

并希望显示第1个和第3个节点的名称,因为它存在子节点&#34; alert&#34;。

DataField1
DataField3

使用以下XPath,我可以显示节点:

 //resource/*[alert]

结果:

<DataField1>
    <label>...</label>
    <alert>...</alert>
</DataField1>
<DataField3>
    <label>...</label>
    <alert>...</alert>
</DataField3>

但这不是我想要的。

2 个答案:

答案 0 :(得分:1)

您只需添加label

//resource/*[alert]/label

答案 1 :(得分:0)

  

/resource/*/alert/parent::*

返回

Element='<DataField1>
     <label>...</label>
     <alert>...</alert>
 </DataField1>'
Element='<DataField3>
    <label>...</label>
    <alert>...</alert>
 </DataField3>'