2010-02-09 11 views

Respuesta

13

se puede ordenar el uso de LINQ to XML, si XmlDocument no es el caso

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

lo hago, pero tengo una excepción. "Al menos un objeto debe implementar IComparable". – cagin

+0

tiene que ser 'node.Attribute (" Name "). Value' –

+0

FYI, haciendo un' nodo 'stright.Attribute (" Name "). Value' lo deja abierto para una excepción de referencia nula si ese atributo falta. Además, si el documento XML especifica un esquema, simplemente hacer 'node.Attribute (" Name ")' tampoco será suficiente, ya que tendrá que usar un 'XName' adecuado para encontrar el atributo. –

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

El nombre es un atributo, no un elemento;) –

+0

@Daniel: ¡oh mierda! Oh bueno, mi mal. OP puede corregir – kd7

Cuestiones relacionadas