使用XPATH获取非空元素

Row*_*wel 19 xpath

我有以下XML

<?xml version = "1.0" encoding = "UTF-8"?>
<root>
  <group>
    <p1></p1>
  </group>
  <group>
    <p1>value1</p1>
  </group>
  <group>
    <p1></p1>
  </group>
</root>
Run Code Online (Sandbox Code Playgroud)

是否有可能获得最后一个有价值的节点?在这种情况下获取第二组/ p1的值.

小智 51

这个xpath应该也可以:

//group/p1[string-length(text()) > 0] 
Run Code Online (Sandbox Code Playgroud)

  • 它也适用于src // group/p1 [string-length(@src)> 0]等属性.谢谢! (4认同)

Mar*_*cus 7

怎么样的 /root/group/p1[text() and not(../following-sibling::group/p1/text())]

换句话说:获取具有文本的p1元素,并且其父组未跟随具有非空p1元素的组节点.