按属性值字母顺序排序XML文件
本文关键字:排序 XML 文件 顺序 属性 | 更新日期: 2023-09-27 18:08:15
我得到了一个XML文件,并希望通过属性"name"按M1字母顺序排序,如下所示如果可以用linq来完成,那就太好了。
输入:<M1>
<Class name="Class1">
<M1 name="ZZAA" description="This is Last" value="0" />
<M1 name="AABB" description="This should be first" value="3" />
<M1 name="ACAB" description="This should be second" value="1" />
<M1 name="ZFAA" description="This should be not here" value="32" />
</Class>
</M1>
输出应该是这样的:
<M1>
<Class name="Class1">
<M1 name="AABB" description="This should be first" value="3" />
<M1 name="ACAB" description="This should be second" value="1" />
<M1 name="ZFAA" description="This should be not here" value="32" />
<M1 name="ZZAA" description="This is Last" value="0" />
</Class>
</M1>
Thanks in advance
使用OrderBy
和ReplaceNodes
:
XDocument doc = XDocument.Load("input.xml");
doc.Root.Element("Class").ReplaceNodes(doc.Root.Element("Class").Elements("M1").OrderBy(m => (string)m.Attribute("name")));
doc.Save("output.xml");