2010-01-11 6 views
0

HI,xsl noeuds sélectine autres que le premier noeud

Je veux sélectionner tous les noeuds autres que la première node.My xsl et xml sont comme ça, mais je ne reçois pas la sortie pour elle.

<Categories> 
    <Category> 
    <Title>Business</Title> 
    </Category> 
    <Category> 
    <Title>Politics</Title> 
    </Category> 
</Categories> 

mon xsl

<xsl:template match="Categories"> 
    <xsl:variable name="restallTitles"> 
     <xsl:value-of select="//*[position() &gt; 1]"/> 
    </xsl:variable> 
    <xsl:for-each select="Categories/Category"> 
     <xsl:if test="$restallTitles"> 
     <xsl:choose> 
      <xsl:when test="position() mod 2 = 1"> 
      <li class=""><xsl:value-of select="Title"/></li> 
      </xsl:when> 
      <xsl:otherwise> 
      <li class="odd"><xsl:value-of select="Title"/></li> 
      </xsl:otherwise> 
     </xsl:choose>    
     </xsl:if> 
    </xsl:for-each> 
</xsl:template> 

Son ne présentant aucune sortie ... quelqu'un d'avoir idée où im obtenir mal ::

Edité :: Je me attends sortie "politique" dans ce cas, mais fondamentalement, je veux tout sauf le "Business"

+0

Quelle est votre instruction 'xsl: template'? –

+0

À quelle sortie es-tu attendu? –

+0

J'ai édité mon code ci-dessus – TSSS22

Répondre

1

Si vous voulez dire "tous <Category> sauf le premier dans le document", alors essayez:

<xsl:for-each select="(Categories/Category)[position() gt; 1]"> 
    <li> 
    <xsl:if test="position() mod 2 = 1"> 
     <xsl:attribute name="class">odd</xsl:attribute> 
    </xsl:if> 
    <a class="video video-lightbox ratio-16-9" href="{$url1}"> 
     <xsl:value-of select="Title"/> 
    </a> 
    </li> 
</xsl:for-each> 
+0

J'ai essayé votre chemin mais toujours son ne montrant pas la sortie – TSSS22

+0

Votre problème est que vous utilisez un '', et à l'intérieur un '. XPath est relatif, il doit être '' puisque vous * êtes déjà dans le contexte 'Categories' quand il s'exécute. – Tomalak

+0

Merci, je l'ai eu ... ou je devrais utiliser et TSSS22

Questions connexes