.NET 3.x Сортировка атрибутов в xml - C#
Формулировка задачи:
Всем привет. Поиск мне ничего не дал ((
Столкнулся с неинтересной для меня загвоздкой:
Есть xml файл примерно такого содержания:
Проблема в том, что мне надо в этом файле сделать так, чтобы атрибуты в узлах были отсортированы в порядке возрастания по имени атрибутов, т.е. Prop1 чтобы располагалось на первом месте.
Пишу вопрос в раздел C#, так как пишу на нем
<?xml version="1.0" encoding="utf-8"?> <Document> <Item Prop2="10" Prop3="1,0" Prop4="0,222" Prop1="10x1,0" /> <Item Prop2="10" Prop3="1,2" Prop4="0,260" Prop1="10x1,2" /> <Item Prop2="10,2" Prop3="1,0" Prop4="0,227" Prop1="10,2x1,0" /> <Item Prop2="10,2" Prop3="1,2" Prop4="0,266" Prop1="10,2x1,2" /> <Item Prop2="12" Prop3="1,0" Prop4="0,271" Prop1="12x1,0" /> <Item Prop2="12" Prop3="1,2" Prop4="0,320" Prop1="12x1,2" /> <Item Prop2="12" Prop3="1,4" Prop4="0,366" Prop1="12x1,4" /> <Item Prop2="12" Prop3="(1,5)" Prop4="0,388" Prop1="12x(1,5)" /> <Item Prop2="12" Prop3="1,6" Prop4="0,410" Prop1="12x1,6" /> <Item Prop2="13" Prop3="1,0" Prop4="0,296" Prop1="13x1,0" /> <Item Prop2="13" Prop3="1,2" Prop4="0,349" Prop1="13x1,2" /> <Item Prop2="13" Prop3="1,4" Prop4="0,401" Prop1="13x1,4" /> <Item Prop2="13" Prop3="(1,5)" Prop4="0,425" Prop1="13x(1,5)" /> <Item Prop2="13" Prop3="1,6" Prop4="0,450" Prop1="13x1,6" /> <Item Prop2="14" Prop3="1,0" Prop4="0,321" Prop1="14x1,0" /> <Item Prop2="14" Prop3="1,2" Prop4="0,379" Prop1="14x1,2" /> <Item Prop2="14" Prop3="1,4" Prop4="0,435" Prop1="14x1,4" /> />
Решение задачи: «.NET 3.x Сортировка атрибутов в xml»
textual
Листинг программы
public void SortXml(string path) { XDocument doc = XDocument.Load(path); List<XElement> childItems = new List<XElement>(); foreach (var item in doc.Elements("Item")) { List<XAttribute> itemAttrs = new List<XAttribute>(item.Attributes().Count()); foreach (var attr in item.Attributes().OrderBy(x=>x.Name)) { itemAttrs.Add(attr); } childItems.Add(new XElement(item.Name, itemAttrs)); } doc = new XDocument(childItems); doc.Save(path); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д