除第一个节点之外的xsl选择节点

时间:2010-01-11 13:15:35

标签: xml xslt

HI,

我想选择除第一个节点以外的所有节点。我的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>

它没有显示任何输出......任何人都知道我哪里出错::

编辑:: 我期待输出 在这种情况下“政治”,但基本上我只想要“商业”

1 个答案:

答案 0 :(得分: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>