通过XMLElement的InnerText对XML文件进行排序

Rau*_*auf 2 c# xml sorting

请查看XML文件.我想按<Order>标签对XML文件进行排序

<MyRootNode>
  <Tab>
    <Name>ABC</Name>
    <Order>200</Order>
  </Tab>
  <Tab>
    <Name>MNO</Name>
    <Order>100</Order>
  </Tab>
  <Tab>
    <Name>XYZ</Name>
    <Order>90</Order>
  </Tab>
  <Tab>
    <Name>QWE</Name>
    <Order>40</Order>
  </Tab>
  <Tab>
    <Name>KML</Name>
    <Order>20</Order>
  </Tab>
</MyRootNode>
Run Code Online (Sandbox Code Playgroud)

所以答案如下.

<MyRootNode>
  <Tab>
    <Name>KML</Name>
    <Order>20</Order>
  </Tab>
  <Tab>
    <Name>QWE</Name>
    <Order>40</Order>
  </Tab>
  <Tab>
    <Name>XYZ</Name>
    <Order>90</Order>
  </Tab>
  <Tab>
    <Name>MNO</Name>
    <Order>100</Order>
  </Tab>
  <Tab>
    <Name>ABC</Name>
    <Order>200</Order>
  </Tab>
</MyRootNode>
Run Code Online (Sandbox Code Playgroud)

我怎么能在C#3.5中做到这一点?

Chu*_*age 8

你有没有尝试过,

XElement root = XElement.Load(xmlfile);
var orderedtabs = root.Elements("Tab")
                      .OrderBy(xtab => (int)xtab.Element("Order"))
                      .ToArray();
root.RemoveAll();
foreach(XElement tab in orderedtabs)
    root.Add(tab);
root.Save(xmlfile);
Run Code Online (Sandbox Code Playgroud)