使用 xsl:number 下降变量计数器
Descend variable counter using xsl:number
我希望使用变量来获得需要按后代顺序计算的日期,例如(2021-01-01, 2020-01-01)。我简化了代码,它只处理年份。
我使用变量的原因是因为在较大的代码中我需要从 JSON.
调用数据
我发现了这个关于“descending counter”的 SO 问题,但答案是在没有变量的情况下执行的。
问题:结果按升序排列
数据源(XML/JSON):
本例中未使用。
您在 xsltfiddle 中找到相同的代码。
代码:
XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:mode on-no-match="shallow-copy"/>
<xsl:output method="html" indent="yes" html-version="5"/>
<xsl:template match="data">
<xsl:for-each select="1 to 2">
<xsl:variable name="counter">
<xsl:number start-at="2016" value="position()"/>
</xsl:variable>
<xsl:value-of select="$counter"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
结果:
<!DOCTYPE HTML>20162017
想要的结果:
<!DOCTYPE HTML>20172016
这个例子似乎有些做作。也许这可以帮助你:
<xsl:for-each select="reverse(1 to 2)">
<xsl:variable name="counter">
<xsl:number start-at="2016" value="."/>
</xsl:variable>
<xsl:value-of select="$counter"/>
</xsl:for-each>
可能有更简单的方法来完成它应该完成的任何事情。
我希望使用变量来获得需要按后代顺序计算的日期,例如(2021-01-01, 2020-01-01)。我简化了代码,它只处理年份。
我使用变量的原因是因为在较大的代码中我需要从 JSON.
调用数据我发现了这个关于“descending counter”的 SO 问题,但答案是在没有变量的情况下执行的。
问题:结果按升序排列
数据源(XML/JSON):
本例中未使用。
您在 xsltfiddle 中找到相同的代码。
代码:
XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="3.0">
<xsl:mode on-no-match="shallow-copy"/>
<xsl:output method="html" indent="yes" html-version="5"/>
<xsl:template match="data">
<xsl:for-each select="1 to 2">
<xsl:variable name="counter">
<xsl:number start-at="2016" value="position()"/>
</xsl:variable>
<xsl:value-of select="$counter"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
结果:
<!DOCTYPE HTML>20162017
想要的结果:
<!DOCTYPE HTML>20172016
这个例子似乎有些做作。也许这可以帮助你:
<xsl:for-each select="reverse(1 to 2)">
<xsl:variable name="counter">
<xsl:number start-at="2016" value="."/>
</xsl:variable>
<xsl:value-of select="$counter"/>
</xsl:for-each>
可能有更简单的方法来完成它应该完成的任何事情。