我不是非常好,XSL,但我想整理以下XML:XML文件類型的特定節點使用XSLT
<Parent>
<node1/>
<class>b</class>
<class>c</class>
<node2/>
<class>a</class>
</Parent>
成以下,這樣只有類元素進行排序和其他元素不變:
<Parent>
<node1/>
<class>a</class>
<class>b</class>
<class>c</class>
<node2/>
</Parent>
我使用的是Java代碼中的以下XSL轉換我的XML:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="class">
<xsl:copy>
<xsl:apply-templates select="*" >
<xsl:sort order="ascending" select="class" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
這給了我:
<Parent>
<node1/>
<class/>
<class/>
<node2/>
<class/>
</Parent>
在輸出XML你的樣品'了'是node1'和'node2'之間',雖然在最初的XML'a'在'node2'下。這是對的嗎? – 2012-03-12 18:44:08
正確..我希望所有其他節點都在自己的位置,但將類節點放在一起。 – 2012-03-12 18:53:53