Как проверить наличие ближайшего родственника в xpath - PullRequest
6 голосов
/ 29 сентября 2011

Теперь я использую xpath для проверки узла, непосредственно следующего за родительским узлом (дядя или муравей).

Мой xml выглядит как

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

<Uncle>
 ..
</Uncle>

Теперь я нахожусь в шаблонном совпадении для дочернего узла B, и я хочу проверить, называется ли следующий родительский объект immeididate «Uncle»,

Я пробовал следующие два xpath:

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

и

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

Ни один из них не будет работать, могут ли эксперты помочь отладить, где я допустил ошибки? Спасибо:).

1 Ответ

16 голосов
/ 29 сентября 2011

Попробуй это.

../following-sibling::*[position()=1][name()='Uncle'] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...