按升序对 xsd 格式的 XML 进行排序
由于 XML 中的 xsd 格式,我的 xslt 解决方案不起作用,如果是 xsd 应该使用什么?
这是我的 XML 输入:
4 1 7 我尝试过:<xsl:stylesheet version="1.0" xmlns:xsl="w3.org/1999/XSL/Transform"> <xsl:template match="/*"> xsl:copy xsl:apply-templates <xsl:sort select="number"/> </xsl:apply-templates> </xsl:copy> </xsl:template>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet> 我期望的输出是:
1 4 7答案1
我认为你想要一些接近这个的东西(省略命名空间和其他声明):
<xsl:template match="/">
<xsl:element name="test">
<xsl:for-each select="//number">
<xsl:sort select="text(.)" data-type="number"/>
<xsl:copy-of select="." />
</xsl:for-each>
</xsl:element>
</xsl:template>