2017-05-04 1 views
0

J'essaie de comprendre comment traiter une partie d'une instruction plus proche d'une lettre. Dans ce fichier XMLComparer le texte et les nœuds après un certain nœud

<?xml version="1.0" encoding="UTF-8"?> 
<a> 
    <closer>regards<lb/><signed>William</signed></closer> 
    <closer>until next tuesday<lb/>regards<lb/><signed>William</signed></closer> 
    <closer>until next tuesday<lb/>regards <signed>William</signed></closer> 
</a> 

Je suis positionné au dernier saut de ligne (lb) et que vous voulez savoir s'il y a plus de texte suivant que juste la signature. J'ai essayé sans succès des choses comme

//substring-after(parent::closer, lb[last()]) = signed 

Mais cela n'a pas fonctionné. Comment puis-je tester correctement pour cela?

Répondre

1

Vous pouvez utiliser following-sibling::node()[not(self::signed)] pour sélectionner des nœuds suivant le nœud de contexte (que vous dites être un élément lb) qui ne sont pas signed. Dans un contexte booléen tel que <xsl:if test="following-sibling::node()[not(self::signed)]">, l'évaluation ne serait vraie que si un tel noeud existe.