Notes and sample code for XPath and Ajax
(The following was moved from document.evaluate)
obj.evaluate(xpathExpression,contextNode,namespaceResolver,resultType,result); //obj and contextNode should be the same object, if context is a ajax xml object (example: returnedXML) this should be used as : returnedXML.evaluate(xpathExpression,returnedXML,namespaceResolver,returnType,result); //contextNode should be used in the one in which it was created //add by mooring 2008-11-15 16:00 china
var xhr = new Ajax('post','demo.xml',parseXML,'xml'); //Ajax is a class written by javascript which return responseXML object to parseXML function
function parseXML(obj)//obj is the returnXML object now
{
if(!obj.documentElement)
{
alert("Your Browser does't support this script!");
return;
}
var fields = [];//store the results
if(window.ActiveXObject)
{
var tobj = obj.documentElement.selectNodes("/root/field/item");
for(var i=0;i<tobj.length; i++)
{
fields.push(tobj[i].text);
}
}
else
{
var tobj = obj.evaluate("/root/field/item",obj.documentElement,null, XPathResult.ANY_TYPE, null);
var tmp = tobj.iterateNext();
while(tmp)
{
fields.push(tmp.textContent);
tmp = tobj.iterateNext();
}
} alert(fields);
}
//here is the demo xml file for xpath
<?xml version="1.0"?>
<root>
<field>
<item>Art_Id</item>
<item>PSection</item>
<item>Qkind</item>
<item>Qtitle</item>
<item>Question</item>
<item>Pic</item>
<item>Answer1</item>
<item>Answer2</item>
<item>Answer3</item>
<item>Answer4</item>
</field>
</root>
//add by mooring 2008-11-15 16:16 china