2011-09-29 13 views
5

Używam teraz xpath do przetestowania węzła nadrzędnego węzła nadrzędnego węzła rodzicielskiego (wujka lub mrówki).Jak sprawdzić, czy po następnym rodzeństwie rodzica na ścieżce xpath

mój xml wygląda

<MyParent> 
<A> 
<B> 
<C> 
</MyParent> 

<Uncle> 
.. 
</Uncle> 

Teraz jestem w meczu szablon dla węzła dziecko B, i chcę, aby sprawdzić, czy immeididate następujące rodzeństwo mojego rodzica jest nazywany „Wujek”,

próbowałem dwa następujące xpaths:

<xsl:if test="parent::MyParent/following-sibling::*[1][self::Uncle]"> 
    <xsl:text>we have it</xsl:text>   
</xsl:if> 

i

<xsl:if test="parent::MyParent[following-sibling::*[1][self::Uncle]]"> 
    <xsl:text>we have it</xsl:text>   
</xsl:if> 

żadne z nich nie zadziała, czy eksperci mogą pomóc w debugowaniu w przypadku popełnienia błędu? Dzięki :).

+2

Twój kod wygląda poprawnie. Może nie działa w kontekście, który Twoim zdaniem jest? Być może możesz udostępnić więcej skryptu, abyśmy mogli sprawdzić. –

+0

@_Robert: Jeśli twój kod nie generuje pożądanego wyniku, ale akceptowana odpowiedź nie, prawdopodobnie oznacza to, że masz (domyślnie) problemy z przestrzenią nazw. –

Odpowiedz

14

Spróbuj tego.

../following-sibling::*[position()=1][name()='Uncle'] 
Powiązane problemy