如何重新排列xml中的元素?

0 .net c# xml reuters

XmlReader具有以下内容:

<ns0:Fields>
  <omm:Field DataType="Utf8String" Name="ROW80_3">
    <omm:Utf8String> Latam News </omm:Utf8String>
  </omm:Field>
  <omm:Field DataType="Int32" Name="RECORDTYPE">
    <omm:Int32>228</omm:Int32>
  </omm:Field>
  <omm:Field DataType="Utf8String" Name="ROW80_4">
    <omm:Utf8String>ATDNEWSRUS</omm:Utf8String>
  </omm:Field>
  <omm:Field DataType="Utf8String" Name="ROW80_1">
    <omm:Utf8String>12:28 27JUN09    PRODUCT LIST</omm:Utf8String>
  </omm:Field>
  <omm:Field DataType="Utf8String" Name="ROW80_2">
    <omm:Utf8String>ATDNEWSLATAM</omm:Utf8String>
  </omm:Field>
  <omm:Field DataType="Utf8String" Name="BQOS">
    <omm:Utf8String>0</omm:Utf8String>
  </omm:Field>
</ns0:Fields>
Run Code Online (Sandbox Code Playgroud)

如何重新排列元素以从ROW80_1开始并在ROW80_4结束.

pn.*_*pn. 5

如果你可以使用XLinq,事情变得更简单:

XDocument doc = XDocument.Parse(@"..."); 

var children = doc.Elements().Single().Elements().OrderBy(element => (string) element.Attribute("Name"));

var newRoot = new XElement(((XNamespace) "yourNamespaceHere") + "Fields",
 new XAttribute(XNamespace.Xmlns + "nso", "yourNamespaceHere"),
 new XAttribute(XNamespace.Xmlns + "omm", "otherNamespace"),
 children);

var newDocument = new XDocument(newRoot);
Console.WriteLine(newDocument); 
Run Code Online (Sandbox Code Playgroud)

您还可以过滤掉元素.