Lib*_*cks 3 .net c# xml sorting
我有以下XML代码:
<Group>
<GElement code="x">
<Group>
<GElement code="x">
<fname>a</fname>
<lname>b</lname>
</GElement>
<GElement code ="f">
<fname>fa</fname>
</GElement>
</Group>
</GElement>
<GElement code ="f">
</GElement>
</Group>
Run Code Online (Sandbox Code Playgroud)
我希望输出按"代码"排序,如:
<Group>
<GElement code ="f">
</GElement>
<GElement code="x">
<Group>
<GElement code ="f">
<fname>fa</fname>
</GElement>
<GElement code="x">
<fname>a</fname>
<lname>b</lname>
</GElement>
</Group>
</GElement>
</Group>
Run Code Online (Sandbox Code Playgroud)
树的深度可以是无穷无尽的,即GElement可以有另一个Group等等.
有任何想法吗?
使用XslCompiledTransform(请参阅MSDN)将此styleshet应用于XML文档:
<xsl:stylesheet
version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
<!-- the identity template copies everything verbatim -->
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*" />
</xsl:copy>
</xsl:template>
<!-- special template for <Group> that sorts its children -->
<xsl:template match="Group">
<xsl:copy>
<xsl:copy-of select="@*" /> <!-- copy attributes, if any -->
<xsl:apply-templates select="GElement">
<xsl:sort select="@code" />
</xsl:apply-templates>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
XML树的嵌套深度可以是任意的.
| 归档时间: |
|
| 查看次数: |
703 次 |
| 最近记录: |