2016-08-26 2 views
0

Je suis nouveau à XSLT et j'ai un XML comme:Comment puis-je savoir si le premier noeud n'a pas d'élément parent dans XSLT?

<ROWSET> 
    <ROW> 
    <a set of elements>, may or may not have parentnode element 
    </ROW> 
    <ROW> 
    <a set of elements>, have parentnode element 
    </ROW> 
    <ROW> 
    <a set of elements>, have parentnode element 
    </ROW> 
</ROWSET> 

Je veux vérifier si la première ligne a un élément de parentNode? Le reste des ROW doit avoir l'élément parentnode. J'utiliser:

<xsl:if test="not (/ROWSET/ROW/PARENTNODE)"> 
    Do something 
</xsl:if> 

Comme le reste des lignes doit avoir le parentNode en eux, de sorte que le test retourne toujours faux. Par conséquent, j'utilise une variable

<xsl:variable name="firstRow" select = "/ROWSET/ROW"/> 
<xsl:if test="not ($firstRow/PARENTNODE)"> 
    Do something 
</xsl:if> 

Unfornately, il retourne toujours aussi faux. Comment puis-je atteindre mon objectif de savoir si la première rangée a un parentnode ou non?

Merci d'avance,

+0

'non (/ ROWSET/ROW [1]/parentNode)' –

+0

mais il n'y a pas 'PARENTNODE' ni' parentnode' (notez que le cas ** ** ne faire une différence) dans votre échantillon xml du tout? –

Répondre

0

Je l'ai eu. Il suffit d'utiliser la position de l'emprise:

<xsl:variable name="firstRow" select = "/ROWSET/ROW[1]"/>