Вот образец XML У меня есть свой несортированныйСортировки XML Хотя преобразование его в JsonString
<hierarchy>
<date>2015/02/27 16:37:10</date>
<folder name="Root" id="Root">
<file id="Erstg_20.xlsx" />
<file id="AAERG_20.xlsx" />
<folder name="Xmdg" id="Xmdg">
<file id="DatePicker_20.xlsx" />
<file id="Abcd_20.xlsx" />
</folder>
<folder name="Axcd" id="Axcd">
<file id="Zfcd_20.xlsx" />
<file id="Abcd_20.xlsx" />
</folder>
</folder>
</hierarchy>
Я хочу, чтобы отсортировать его таким образом, чтобы все папки в корневом узле должны быть отсортированы в порядке возрастания и файлы в каждом узел должен быть отсортирован в порядке возрастания их идентификаторы
Вот как я это делаю прямо сейчас
XmlDocument doc = new XmlDocument();
doc.Load(xmlFilePath);
try {
string json = JsonConvert.SerializeXmlNode(doc);
string rJson = json.Replace("@id", "id");
json = rJson.Replace("@name", "name");
System.IO.File.WriteAllText(HierarchyJSFilePath, "var jsonStr= " + json + ";");
}
Вам необходимо отсортировать XML-документ. Весьма уродливо, потому что ваш xml кажется рекурсивным (внутри папок внутри папок могут быть файлы внутри папок). Внутри одной папки, какой порядок вы хотите между файлами и папками? Все файлы сначала (упорядочены по id), все папки сначала (упорядочены по id), файлы и папки смешаны и упорядочены по id – xanatos
Да, это рекурсивно .. Корневая папка Всегда будет с тем же именем и идентификатором, поэтому сначала я хотите сортировать файлы по их идентификатору в корневой папке, а затем папки в папках и файлах в этих папках. –
Есть ли причина, по которой вы используете SerializeXmlNode вместо использования промежуточного объекта для хранения десериализованного контента, сортировки его с помощью LINQ, а затем преобразования этой структуры в Json? –