Xpath如何在节点选择上使用和声明以及父条件

时间:2017-12-22 09:07:35

标签: xml xpath

假设我有这样的XML:

<my-parent-tag attr="">
  <my-child-tag/>
</my-parent-tag>
<my-child-tag/> <!--I don't want to select this one-->

我想找到所有my-child-tag,其父节点为my-parent-tag,attr =&#34;&#34;。我如何在Xpath中表达这一点?我试过了

//my-child-tag and [../my-parent-tag[@attr='']]

但是,我最终获得了Xpath-no-node选择的反馈。帮助赞赏:)

3 个答案:

答案 0 :(得分:2)

为什么不使用正则表达式//parent/child

从父级中选择具有属性的所有后代标记:

//my-parent-tag[@attr='']//my-child-tag

从父级中选择属性为

的所有子标签
//my-parent-tag[@attr='']/my-child-tag

答案 1 :(得分:0)

您可以使用//my-child-tag[parent::my-parent-tag[@attr='']]

答案 2 :(得分:0)

这个XPath,

//my-parent-tag[@attr='']/my-child-tag

将选择my-child-tag为父my-parent-tag的{​​{1}}元素,其attr属性值为''