16

私がこの与えられたXMLファイルを持っているとしましょう:

<root>
    <node>x</node>
    <node>y</node>
    <node>a</node>
</root>

そして、次のように表示したいと思います。

ayx

次のようなものを使用します。

<xsl:template match="/">
    <xsl:apply-templates select="root/node"/>
</xsl:template>
<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>
4

3 に答える 3

32

簡単!

<xsl:template match="/">
    <xsl:apply-templates select="root/node">
        <xsl:sort select="position()" data-type="number" order="descending"/>
    </xsl:apply-templates>
</xsl:template>

<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>
于 2008-09-08T15:06:30.690 に答える
3

を使用してこれを行うことができますxsl:sort。設定することが重要data-type="number"です。そうしないと、位置が文字列としてソートされ、そのために終了し、10番目のノードが2番目のノードの前に考慮されるためです。

<xsl:template match="/">
    <xsl:apply-templates select="root/node">
        <xsl:sort 
            select="position()" 
            order="descending" 
            data-type="number"/>
    </xsl:apply-templates>
</xsl:template>
<xsl:template match="node">
    <xsl:value-of select="."/>
</xsl:template>
于 2008-09-08T15:05:09.320 に答える