如何选择具有某些属性的父节点。 例如:什么是Xpath来选择所有expiration_time元素。 在下面的XML中,如果states元素有属性,我会收到错误,否则没有probs。
由于
<lifecycle>
<states elem="0">
<expiration_time at="rib" zing="chack">08</expiration_time>
</states>
<states elem="1">
<expiration_time at="but">4:52</expiration_time>
</states>
<states elem="2">
<expiration_time at="ute">05:40:15</expiration_time>
</states>
<states elem="3">
<expiration_time>00:00:00</expiration_time>
</states>
</lifecycle>
答案 0 :(得分:4)
states/expiration_time[../@elem = "0"]
?
答案 1 :(得分:3)
使用强>:
/*/*/expiration_time
这将选择所有expiration_time
个元素,这些元素是XML文档顶级元素的子元素。
/*/*[@*]/expiration_time
这将选择其父级至少具有一个属性并且是XML文档顶部元素的子元素的任何expiration_time
元素。
/*/*[not(@*)]/expiration_time
这将选择其父级没有属性并且是XML文档顶部元素的子元素的任何expiration_time
元素。
/*/*[@elem = '2']/expiration_time
这会选择其父级具有expiration_time
属性的任何elem
元素,其字符串值为&#39; 2&#39;那就是(父)XML文档顶部元素的子元素。
答案 2 :(得分:0)
这将为您提供具有至少一个属性的所有节点
//*[count(./@*) > 0]