Ror*_*ory 1 python xml sorting xslt xpath
是否可以对 XML 文件进行如下排序:
<model name="ford">
<driver>Bob</driver>
<driver>Alice</driver>
</model>
<model name="audi">
<driver>Carly</driver>
<driver>Dean</driver>
</model>
Run Code Online (Sandbox Code Playgroud)
哪个会变成
<model name="audi">
<driver>Carly</driver>
<driver>Dean</driver>
</model>
<model name="ford">
<driver>Alice</driver>
<driver>Bob</driver>
</model>
Run Code Online (Sandbox Code Playgroud)
也就是说,最外面的元素首先被排序,然后是第二个最外面的元素,依此类推。
它们需要首先按元素名称排序。这能做到吗?或者我应该使用像 BeautifulSoup 这样的东西来旋转我自己的?
这是 Kirill 解决方案的改进,我认为它更好地反映了所述要求,并且避免了 XSLT 2.0 在排序键包含多个值时会给您带来的类型错误(但它仍然适用于 1.0)。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" />
<xsl:template match="*">
<xsl:copy>
<xsl:copy-of select="@*"/>
<xsl:apply-templates select="*">
<xsl:sort select="(@name | text())[1]"/>
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4583 次 |
| 最近记录: |