Как я могу изменить порядок / отсортировать список узлов в JavaScript?

У меня, по моему мнению, должен быть простой вопрос; позвольте мне быстро объяснить:

В моем JavaScript food.xml читается с помощью:

getMenuXml.open("GET","food.xml",false);
getMenuXml.send();
xmlDoc=getMenuXml.responseXML;
xmlFoodList = xmlDoc.getElementsByTagName("food");

, так что теперь у меня есть NodeList xmlFoodList со всеми элементами food. Пока все отлично. Проблема в том, что я хочу отсортировать узлы на основе элемента внутри. Я могу прочитать это с помощью:

xmlFoodList[i].getElementsByTagName("category")[0].childNodes[0].nodeValue

Позже в моем коде продукты питания отображаются в списке, и, как и следовало ожидать, я хочу, чтобы продукты одной категории были перечислены вместе. Итак, мой вопрос: Как я могу изменить порядок узлов в xmlFoodList в зависимости от их категории?

Примечания: Я не могу изменить входящий food.xml , и я не хочу редактировать свой более поздний код для сортировки по мере заполнения списка. Я не Я хочу преобразовать NodeList в массив, так как мне пришлось бы переписать много более позднего кода. Производительность на самом деле не вызывает большого беспокойства, поэтому не стесняйтесь клонировать / вложенный цикл, сколько хотите. Спасибо за уделенное время.

7
задан GeroldBroser reinstates Monica 24 November 2017 в 00:23
поделиться