2010-02-09 5 views

Antwort

13

Sie können mithilfe von LINQ to XML sortieren, wenn XmlDocument nicht der Fall ist

XDocument input = XDocument.Load(@"input.xml"); 
XDocument output = new XDocument(
    new XElement("Users", 
     from node in input.Root.Elements() 
     orderby node.Attribute("Name").Value descending 
     select node)); 
+0

ich das tun, aber ich habe eine Ausnahme. "Mindestens ein Objekt muss IComparable implementieren". – cagin

+0

muss es 'node.Attribute (" Name ") sein. Wert' –

+0

FYI, macht eine stright' node.Attribute ("Name"). Value' lässt Sie für eine Null-Referenz-Ausnahme offen, wenn dieses Attribut fehlt. Wenn das XML-Dokument ein Schema spezifiziert, reicht auch das Ausführen von 'node.Attribute (" Name ") nicht aus, da Sie zum Suchen des Attributs einen richtigen' XName' verwenden müssen. –

0
XDocument xdoc = new XDocument(
    new XElement("Users", 
     new XElement("Name", "Z"), 
     new XElement("Name", "D"), 
     new XElement("Name", "A"))); 

var doc = xdoc.Element("Users").Elements("Name").OrderBy(n => n.Value); 
XDocument doc2 = new XDocument(new XElement("Users", doc)); 
+0

Name ist ein Attribut, kein Element;) –

+0

@Daniel: oh Mist! Naja, mein Schlechter. OP kann korrigieren – kd7

Verwandte Themen