Подтвердить что ты не робот

Как я могу отсортировать атрибут XDocument по атрибуту?

У меня есть XML

<Users>
    <User Name="Z"/>
    <User Name="D"/>
    <User Name="A"/>
</User>

Я хочу сортировать его по имени. Я загружаю этот xml с помощью XDocument. Как я могу просмотреть этот xml, отсортированный по имени?

4b9b3361

Ответ 1

Вы можете сортировать, используя LINQ to Xml, если XmlDocument не тот случай

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));

Ответ 2

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));