Como posso reordenar / classificar um NodeList em JavaScript?

Eu tenho o que acho que deve ser uma pergunta direta; deixe-me explicar rapidamente:

No meu JavaScript,food.xml é lido com:

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

então agora eu tenho um NodeListxmlFoodList com todos os elementos alimentares. Ótimo até agora. O problema é que eu quero classificar os nós com base em um elemento<category> dentro. Eu posso ler isso com:

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

Posteriormente no meu código, os itens de comida são exibidos em uma lista e, como seria de esperar, desejo que os alimentos da mesma categoria sejam listados juntos. Então, minha pergunta é:Como posso reordenar os nós noxmlFoodList com base em sua categoria?

Notas: Não consigo mudarfood.xml entrando e não quero editar meu código posterior para fazer a classificação, pois a lista é preenchida. Não quero converter o NodeList em uma matriz, pois teria que reescrever muitos códigos posteriores. O desempenho não é realmente uma preocupação, portanto, fique à vontade para clonar / aninhar tudo o que quiser. Obrigado pelo seu tempo.

questionAnswers(3)

yourAnswerToTheQuestion