使用c#对xml数据进行排序 [英] Sort the xml data using c#
本文介绍了使用c#对xml数据进行排序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
<?xml version="1.0" encoding="ISO-8859-1"?>
<HierarchiesFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HierarchiesFile.xsd">
<Hierarchy>
<level>0</level>
<parent>true</parent>
<HierarchyDescription>A</HierarchyDescription>
<HierarchyPath>A</HierarchyPath>
<HierarchyCode>23:1</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>1</level>
<parent>false</parent>
<HierarchyDescription>AA</HierarchyDescription>
<HierarchyPath>A : AA</HierarchyPath>
<HierarchyCode>23:2</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>1</level>
<parent>true</parent>
<HierarchyDescription>AB</HierarchyDescription>
<HierarchyPath>A : AB</HierarchyPath>
<HierarchyCode>23:3</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>2</level>
<parent>false</parent>
<HierarchyDescription>AAA</HierarchyDescription>
<HierarchyPath>A : AB : AAA</HierarchyPath>
<HierarchyCode>23:4</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>2</level>
<parent>false</parent>
<HierarchyDescription>AAC</HierarchyDescription>
<HierarchyPath>A : AB : AAC</HierarchyPath>
<HierarchyCode>23:5</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>1</level>
<parent>false</parent>
<HierarchyDescription>AC</HierarchyDescription>
<HierarchyPath>A : AC</HierarchyPath>
<HierarchyCode>23:6</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<LastCode>23:7</LastCode>
</HierarchiesFile>
以上xml数据排序如下
above xml data sort as below
<?xml version="1.0" encoding="ISO-8859-1"?>
<HierarchiesFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="HierarchiesFile.xsd">
<Hierarchy>
<level>0</level>
<parent>true</parent>
<HierarchyDescription>A</HierarchyDescription>
<HierarchyPath>A</HierarchyPath>
<HierarchyCode>23:1</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>1</level>
<parent>false</parent>
<HierarchyDescription>AA</HierarchyDescription>
<HierarchyPath>A : AA</HierarchyPath>
<HierarchyCode>23:2</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>1</level>
<parent>false</parent>
<HierarchyDescription>AC</HierarchyDescription>
<HierarchyPath>A : AC</HierarchyPath>
<HierarchyCode>23:6</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>1</level>
<parent>true</parent>
<HierarchyDescription>Changed</HierarchyDescription>
<HierarchyPath>A : Changed</HierarchyPath>
<HierarchyCode>23:3</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>2</level>
<parent>false</parent>
<HierarchyDescription>AAA</HierarchyDescription>
<HierarchyPath>A : Changed : AAA</HierarchyPath>
<HierarchyCode>23:4</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<Hierarchy>
<level>2</level>
<parent>false</parent>
<HierarchyDescription>AAC</HierarchyDescription>
<HierarchyPath>A : Changed : AAC</HierarchyPath>
<HierarchyCode>23:5</HierarchyCode>
<HierarchyType>Folder</HierarchyType>
<HierarchyACL/>
</Hierarchy>
<LastCode>23:7</LastCode>
</HierarchiesFile>
推荐答案
您可以反序列化XML文件,
然后按任何条件对对象进行排序,例如: LINQ
然后将已排序的对象序列化为新的XML文件。
首先,您必须从示例XML文件生成一个类
使用XSD工具。
请阅读本文进行反序列化:
http://timtrott.co.uk/using-xsd-tool-to-generate-classes-from- xml / [ ^ ]
请阅读本文序列化:
http://tech.pro/tutorial/798/csharp-tutorial-xml-serialization [ ^ ]
You could deserialize the XML file,
then sort the object by any criteria by e.g. LINQ
and then serialize the sorted object to a new XML file.
First of all you must generate a class from a sample XML file
by using XSD tool.
Please read this for deserialization:
http://timtrott.co.uk/using-xsd-tool-to-generate-classes-from-xml/[^]
Please read this for serialization:
http://tech.pro/tutorial/798/csharp-tutorial-xml-serialization[^]
这篇关于使用c#对xml数据进行排序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文