2010-01-11 3 views
0

HI,кроме первого узла

XSL селектина узлы Я хочу, чтобы выбрать все, кроме первого node.My XSL и XML узлов, как это, но я не получаю выход для него.

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

мой 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> 

Его не показывая никаких выходных ... кто-то имея идею, где им получать неправильно ::

Отредактировано :: я м ожидая выхода "политика" в этом случае, но в основном я хочу все, кроме «Бизнес»

+0

В чем заключается ваш запрос 'xsl: template'? –

+0

Какой результат вы ожидали? –

+0

Я отредактировал мой код выше – TSSS22

ответ

1

Если вы имеете в виду «все <Category> с исключением первого в документе», попробуйте:

<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

Я пробовал свой путь, но все же его не показывал вывод – TSSS22

+0

Ваша проблема в том, что вы используете '' и внутри него ' '. XPath относительный, он должен быть '', поскольку вы * * в контексте 'Categories' уже при запуске. – Tomalak

+0

Спасибо, я получил его ... или я должен использовать и TSSS22

Смежные вопросы