Sorting XML data in Javascript

wxdqz

New Member
I have read in an xml document using javascript and before I display the data I want to be able to sort it in some way. I know of the sort() method for arrays but can I use it for my xml data?

Here's an example of my xml file
<?xml version="1.0" ?>
<products category="big stuff">
<item id="123">
<name ref="abc3">Unnamed Item1</name>
<des>C_Description not available</des>
</item>
<item id="456">
<name ref="abc1">Unnamed Item2</name>
<des>B_Description not available</des>
</item>
<item id="789">
<name ref="abc2">Unnamed Item3</name>
<des>A_Description not available</des>
</item>
</products>

and here's a section of my code

function initatepage(itemcategory, startPos) {
myxmlfile = 'xmls/'+itemcategory+'.xml';

if (document.implementation && document.implementation.createDocument)
{
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.addEventListener('load', loadHandler, false);
xmlDoc.load(myxmlfile);
}
else if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.onreadystatechange = function() {
if(xmlDoc.readyState == 4) loadHandler()
};
xmlDoc.load(myxmlfile);
}
else
{
alert(getIncompatMsg());
return;
}

function loadHandler () {
myxmlDoc = xmlDoc.getElementsByTagName('products');
createStorepage(myxmlDoc, itemcategory, startPos);
} // end loadHandler
} // end initatepage

function createStorepage(myxmlDoc, itemcategory, startPos){

MaxxmlItemLen = myxmlDoc[0].childNodes.length;

//Here's where I want to sort the data before it enters the for loop

for (var i = 0; i < xmlItemLen; i++) {

currentNode = myxmlDoc[0].childNodes;

name = currentNode.childNodes[0].firstChild.nodeValue;
ref = currentNode.childNodes[0].getAttribute("ref");
shortdes = currentNode.childNodes[1].firstChild.nodeValue;
// then do something with data
} // end for
} // end createStorepage

any help will be greatfully received.

Carl
 
Back
Top