我希望在XSL/FO中反转for-each循环.
例如xml
<data>
<record id="1"/>
<record id="2"/>
<record id="3"/>
<record id="4"/>
<record id="5"/>
<record id="6"/>
</data>
Run Code Online (Sandbox Code Playgroud)
与xsl
<xsl:for-each select="descendant-or-self::*/record">
<xsl:value-of select="@id"/>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
我正在寻找输出654321而不是123456
这怎么可能?
kha*_*hik 30
使用xsl:sort不是为了排序@id
而是为了排序position()
:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/data">
<xsl:for-each select="descendant-or-self::*/record">
<xsl:sort select="position()" data-type="number" order="descending"/>
<xsl:value-of select="@id"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
是的,亚历山大是对的 - 但忘记了数据类型:
<xsl:for-each select="descendant-or-self::*/record">
<xsl:sort select="@id" order="descending" data-type="number" />
<xsl:value-of select="@id"/>
</xsl:for-each>
Run Code Online (Sandbox Code Playgroud)
(没有它,你将遇到数字超过9的排序问题)
归档时间: |
|
查看次数: |
14128 次 |
最近记录: |