test.xml:
Everyday ItalianGiada De Laurentiis
2005
30.00
Harry PotterJ K. Rowling
2005
29.99
XQuery Kick StartJames McGovern
Per Bothner
Kurt Cagle
James Linn
Vaidyanathan Nagarajan
2003
49.99
Learning XMLErik T. Ray
2003
39.95
test.html:
/*
@desc 加载XHR文件
@author lee []
@param file 文件路径
@param async 同步或异步 true 异步 flase 同步
@return xmlDoc 加载后的内容
*/
function loadDoc(file,async=true){
if(window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}else{ // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if(async === true){
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState < 4){
// 加载中
}else if (xmlhttp.readyState == 4 && xmlhttp.status == 200){
// 成功
xmlDoc=xmlhttp.responseXML;
return xmlDoc
}else{
// 失败
}
}
}
xmlhttp.open("GET",file,async);
xmlhttp.send();
if(async === false){
xmlDoc=xmlhttp.responseXML;
return xmlDoc
}
}
var xmlDoc = loadDoc('test.xml',false)
var path="/bookstore/book/title"
// code for IE
if (window.ActiveXObject){
var nodes=xmlDoc.selectNodes(path);
for (i=0;i
document.write(nodes[i].childNodes[0].nodeValue);
document.write("
");
}
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument){
var nodes=xmlDoc.evaluate(path, xmlDoc, null, XPathResult.ANY_TYPE, null);
var result=nodes.iterateNext();
while (result){
document.write(result.childNodes[0].nodeValue);
document.write("
");
result=nodes.iterateNext();
}
}
输出:
Harry Potter
Everyday Italian
Learning XML
XQuery Kick Start