按属性排序 XML
Sort XML by attribute
我想对 XML 文件进行排序。
假设,我们有以下 XML:
<test>
<a attribute="sortme2">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme1">
<b>
<c donttouchme="aaa"/>
</b>
</a>
</test>
我想要以下输出:
<test>
<a attribute="sortme">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme1">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme2">
<b>
<c donttouchme="aaa"/>
</b>
</a>
</test>
你能帮帮我吗?我会很高兴!谢谢。
应用以下 XSLT:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:qi="http://webqi.org/XMLSchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<!-- match the root node-->
<xsl:template match="/">
<xsl:apply-templates select="*" />
</xsl:template>
<xsl:template match="@*|node()">
<!-- copy all elements and attributes-->
<xsl:copy>
<xsl:apply-templates select="@*|node()">
<!-- sort on the attribute attribute-->
<xsl:sort select="@attribute" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
要将 xml 连接到 xsl,将上面的内容保存为 'yourxsl.xsl',然后将其添加到 xml 的顶部:
<?xml-stylesheet type="text/xsl" href="yourxsl.xsl"?>
-如此处所述:
How to link up XML file with XSLT file?
我想对 XML 文件进行排序。
假设,我们有以下 XML:
<test>
<a attribute="sortme2">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme1">
<b>
<c donttouchme="aaa"/>
</b>
</a>
</test>
我想要以下输出:
<test>
<a attribute="sortme">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme1">
<b>
<c donttouchme="aaa"/>
</b>
</a>
<a attribute="sortme2">
<b>
<c donttouchme="aaa"/>
</b>
</a>
</test>
你能帮帮我吗?我会很高兴!谢谢。
应用以下 XSLT:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt"
xmlns:qi="http://webqi.org/XMLSchema"
xmlns:xs="http://www.w3.org/2001/XMLSchema" version="1.0">
<!-- match the root node-->
<xsl:template match="/">
<xsl:apply-templates select="*" />
</xsl:template>
<xsl:template match="@*|node()">
<!-- copy all elements and attributes-->
<xsl:copy>
<xsl:apply-templates select="@*|node()">
<!-- sort on the attribute attribute-->
<xsl:sort select="@attribute" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
要将 xml 连接到 xsl,将上面的内容保存为 'yourxsl.xsl',然后将其添加到 xml 的顶部:
<?xml-stylesheet type="text/xsl" href="yourxsl.xsl"?>
-如此处所述:
How to link up XML file with XSLT file?