2013-04-16 18 views
9

mam następujące XMLPobierz niepusty elementu przy użyciu XPATH

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

jest to możliwe, aby uzyskać ostatni węzeł o wartości? w takim przypadku pobierz wartość drugiej grupy/p1.

+0

Opublikuj swój xslt lub xpath proszę – MikroDel

Odpowiedz

6

Jak o czymś takim /root/group/p1[text() and not(../following-sibling::group/p1/text())]

Innymi słowy: uzyskać elementy p1, które mają tekstu i którego grupa rodzice nie są przestrzegane przez węzłów grupowych, które mają niepuste elementy P1.

+0

Zrobiłem, zwraca jeden węzeł zgodnie z przeznaczeniem. – Marcus

+0

ten działa, próbowałem go tutaj i daje mi to, co chcę http://www.xpathtester.com/test – Rowel

34

Ten XPath powinno działać także:

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

Działa również z atrybutami takimi jak src // group/p1 [string-length (@src)> 0 ]. Dzięki! – ovejaexiste

0

Można również użyć [not(node())] Selector. Przykład: //group/p1[not(node())]

Powiązane problemy