我遇到了一个问题,我必须按节点名称对XDocument进行排序。实施例
<contact>
<email></email>
<address></address>
<name></name>
</contact>
我想要
<contact>
<address></address>
<email></email>
<name></name>
</contact>
感谢您的帮助。
我试过用
var ab = xdoc.Descendants("contact");
var s = from abs in ab
orderby abs.Name.ToString() descending
select abs;
但结果保持不变
答案 0 :(得分:2)
您需要使用有序节点替换子节点:
XDocument doc = XDocument.Parse(@"<contact>
<email></email>
<address></address>
<name></name>
</contact>");
doc.Root.ReplaceNodes(doc.Root.Elements().OrderBy(el => el.Name.LocalName));