BigBadDave
Programmer
I built this function to parse and render my XML:
It works fine but I'm wondering if there is a faster way (It may just be the length of the XML document!) to parse the XML Regards
David Byng
davidbyng@hotmail.com
Code:
stop ();
var mySort = new Array();
var pXML = new XML();
pXML.onLoad = readXML;
pXML.load("file.xml");
function chkDup (hts, qry) {
for (var i = 0; i<mySort.length; i++) {
if (mySort[i][1] == qry) {
mySort[i] = [mySort[i][0]+hts, qry, mySort[i][2]];
return true;
}
}
return false;
}
function readXML () {
if (pXML.loaded) {
for (var x = 0; x<pXML.childNodes[2].childNodes[0].childNodes[1].childNodes[0].childNodes[1].childNodes.length; x++) {
for (var y = 0; y<pXML.childNodes[2].childNodes[0].childNodes[1].childNodes[0].childNodes[1].childNodes[x].childNodes[2].childNodes.length; y++) {
Query = new String(pXML.childNodes[2].childNodes[0].childNodes[1].childNodes[0].childNodes[1].childNodes[x].childNodes[2].childNodes[y].childNodes);
Hits = parseFloat(pXML.childNodes[2].childNodes[0].childNodes[1].childNodes[0].childNodes[1].childNodes[x].childNodes[2].childNodes[y].attributes.Hits);
Av = pXML.childNodes[2].childNodes[0].childNodes[1].childNodes[0].childNodes[1].childNodes[x].childNodes[2].childNodes[y].attributes.AvgRank;
if (chkDup(Hits, Query) != true) {
mySort[mySort.length] = [Hits, Query, Av];
}
}
}
renderXML();
} else {
readXML();
}
}
function renderXML () {
mySort.sort();
var tt = mySort.length-11;
i = 0;
for (var p = mySort.length-1; p>tt; p--) {
i++;
_root["query"+i] = mySort[p][1];
_root["hits"+i] = mySort[p][0];
_root["av"+i] = mySort[p][2];
}
_root.loadt._visible = 0;
}
It works fine but I'm wondering if there is a faster way (It may just be the length of the XML document!) to parse the XML Regards
David Byng

davidbyng@hotmail.com