我有以下XML
<?xml version = "1.0" encoding = "UTF-8"?>
<root>
<group>
<p1></p1>
</group>
<group>
<p1>value1</p1>
</group>
<group>
<p1></p1>
</group>
</root>
是否有可能获得最后一个具有值的节点?在这种情况下,获取第二组/ p1的值。
答案 0 :(得分:44)
此xpath也可以正常工作:
//group/p1[string-length(text()) > 0]
答案 1 :(得分:6)
如/root/group/p1[text() and not(../following-sibling::group/p1/text())]
换句话说:获取具有文本的p1元素,并且其父组未跟随具有非空p1元素的组节点。
答案 2 :(得分:1)
您也可以使用[not(node())]
选择器。
示例://group/p1[not(node())]
答案 3 :(得分:0)
它实际上可以简化如下:
//group/p1[string-length() > 0] => element text is non-empty
//group/p1[string-length() = 6] => element text has length 6