XPath

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

Document Tags and Contributors

Contributors to this page: wbamberg, Brettz9
Last updated by: wbamberg,