Css 生成对<;李>;

Css 生成对<;李>;,css,xml,xslt-2.0,Css,Xml,Xslt 2.0,我有一个用XSLT2.0转换成xhtml的XML文件。该文件的行如下所示: <p>Here I refer to list item number (<lat:listref href="nr"/>) below to tell you about.....</p> 这里我参考下面的列表项目编号()来告诉您 在其他地方,在同一文件的其他元素中嵌套一个编号(CSS)列表: 清单项目1 清单项目2 清单项目3 必须转换为数字3 到目前为止,我提出了: &l

我有一个用XSLT2.0转换成xhtml的XML文件。该文件的行如下所示:

<p>Here I refer to list item number (<lat:listref href="nr"/>) below to tell you about.....</p>
这里我参考下面的列表项目编号()来告诉您

在其他地方,在同一文件的其他元素中嵌套一个编号(CSS)列表:


  • 清单项目1
  • 清单项目2
  • 清单项目3
  • 必须转换为数字3

    到目前为止,我提出了:

    <xsl:template match="lat:listref">
        <xsl:variable name="l" select="@href"/>
        <xsl:number select="//li[*//@id=$l]"  level="single"/>
    </xsl:template>
    
    
    
    我是否可以在不需要变量的情况下执行此操作?

    定义一个键:

    然后在
    lat:listref
    的模板中,只需执行

    最后编写一个模板:

    是。使用:


    谢谢。如果id'd元素(这里是span)可以是嵌套在li中的任何级别的任何元素,那么我假定使用祖先::,并在xsl:key中使用“ol/li/*[@id]”。我可以使用xsl:number的“value”属性开始输出数字,比如说100吗?
    <xsl:template match="lat:listref">
        <xsl:variable name="l" select="@href"/>
        <xsl:number select="//li[*//@id=$l]"  level="single"/>
    </xsl:template>
    
    <xsl:template match="lat:listref">
      <xsl:value-of select="count(//li[.//@id = current()/@href]/preceding-sibling::li) + 1"/>
    </xsl:template>