我有一个XML文件,想按如下所示按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>
提前致谢
使用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");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句