如何按名称对 xDocument 节点进行排序
How to sort xDocument node by name
我遇到了必须按节点名称对 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;
但结果保持不变
您需要将子节点替换为有序节点:
XDocument doc = XDocument.Parse(@"<contact>
<email></email>
<address></address>
<name></name>
</contact>");
doc.Root.ReplaceNodes(doc.Root.Elements().OrderBy(el => el.Name.LocalName));
我遇到了必须按节点名称对 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;
但结果保持不变
您需要将子节点替换为有序节点:
XDocument doc = XDocument.Parse(@"<contact>
<email></email>
<address></address>
<name></name>
</contact>");
doc.Root.ReplaceNodes(doc.Root.Elements().OrderBy(el => el.Name.LocalName));