2013-04-16 25 views
9

Tôi có XML sauLấy yếu tố không có sản phẩm nào sử dụng XPath

<?xml version = "1.0" encoding = "UTF-8"?> 
<root> 
    <group> 
    <p1></p1> 
    </group> 
    <group> 
    <p1>value1</p1> 
    </group> 
    <group> 
    <p1></p1> 
    </group> 
</root> 

là nó có thể để có được cuối cùng nút có giá trị? trong trường hợp này nhận được giá trị của nhóm thứ hai/p1.

+0

Đăng xslt hoặc xpath của bạn, vui lòng – MikroDel

Trả lời

6

Làm thế nào về một cái gì đó giống như /root/group/p1[text() and not(../following-sibling::group/p1/text())]

Nói cách khác: có được các yếu tố p1 có văn bản và có cha mẹ nhóm không được theo sau bởi các nút nhóm có yếu tố p1 không trống.

+0

Tôi đã làm, nó trả về một nút như dự định. – Marcus

+0

cái này hoạt động, tôi đã thử nó ở đây và nó mang lại cho tôi những gì tôi muốn http://www.xpathtester.com/test – Rowel

34

xpath này nên làm việc cũng như:

//group/p1[string-length(text()) > 0] 
+2

Nó cũng hoạt động với các thuộc tính như src // group/p1 [string-length (@src)> 0 ]. Cảm ơn! – ovejaexiste

0

Bạn cũng có thể sử dụng [not(node())] Selector. Ví dụ: //group/p1[not(node())]

Các vấn đề liên quan