【发布时间】:2014-06-30 05:49:14
【问题描述】:
我正在尝试使用 XSLT 转换对 XML 文件进行排序,但它没有达到我想要的效果。我想按 loc 元素按字典顺序对 XML 进行排序。
这是我的原始 XML:
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>url3</loc>
</url>
<url>
<loc>url2</loc>
</url>
<url>
<loc>url1</loc>
</url>
</urlset>
这是 xslt:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="utf-8" indent="yes"
version="1.0" />
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="urlset">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="url">
<xsl:sort select="loc" data-type="text" order="ascending" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
我想看看这个输出:
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>url1</loc>
</url>
<url>
<loc>url2</loc>
</url>
<url>
<loc>url3</loc>
</url>
</urlset>
我尝试关注这个问题,但无法正常工作。
上面的 XSLT 只是复制原始 xml 而不进行任何排序,仅此而已。有人可以帮助我吗?如何对loc 标签进行排序?
【问题讨论】:
标签: xml sorting xslt xpath xslt-grouping