我下面有XML,需要根据其属性进行排序
<?xml version='1.0' encoding='UTF-8'?>
<metadata xmlns:ame="http://www.abcd.com/ame/md">
<logicalModel>
<tables>
<table ame:include="md/logical/tables/SS_PA_BROKER_EIOPA_CODE.md"/>
<table ame:include="md/logical/tables/SS_XX_SOURCE_SYSTEM.md"/>
<table ame:include="md/logical/tables/GL_XX_COUNTRY_CODE.md"/>
<table ame:include="md/logical/tables/SS_PA_SOURCE_PRODUCT.md"/>
</tables>
</logicalModel>
</metadata>
尝试使用xsl,但无法这样做。 预期输出是
<?xml version='1.0' encoding='UTF-8'?>
<metadata xmlns:ame="http://www.abcd.com/ame/md">
<logicalModel>
<tables>
<table ame:include="md/logical/tables/GL_XX_COUNTRY_CODE.md"/>
<table ame:include="md/logical/tables/SS_PA_BROKER_EIOPA_CODE.md"/>
<table ame:include="md/logical/tables/SS_XX_SOURCE_SYSTEM.md"/>
<table ame:include="md/logical/tables/SS_PA_SOURCE_PRODUCT.md"/>
</tables>
</logicalModel>
</metadata>
答案 0 :(得分:0)
在xsl下找到,可以按预期对整个xml树进行排序
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()">
<xsl:sort select="text() | @*"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>