<?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book category="COOKING"><title lang="en">Everyday Italian</title><author>Giada De Laurentiis</author><year>2005</year><price>30.00</price></book><book category="CHILDREN"><title lang="en">Harry Potter</title><author>J K. Rowling</author><year>2005</year><price>29.99</price></book><book category="WEB"><title lang="en">XQuery Kick Start</title><author>James McGovern</author><author>Per Bothner</author><author>Kurt Cagle</author><author>James Linn</author><author>Vaidyanathan Nagarajan</author><year>2003</year><price>49.99</price></book><book category="WEB"><title lang="en">Learning XML</title><author>Erik T. Ray</author><year>2003</year><price>39.95</price></book></bookstore>
<script type="text/javascript">/* @desc 加载XHR文件 @author lee [<complet@163.com>] @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 IEif (window.ActiveXObject){var nodes=xmlDoc.selectNodes(path); ???for (i=0;i<nodes.length;i++){ ???????document.write(nodes[i].childNodes[0].nodeValue); ???????document.write("<br />"); ???}}// 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("<br />"); ???????result=nodes.iterateNext(); ???}}</script>
Harry PotterEveryday ItalianLearning XMLXQuery Kick Start
HTML使用XPATH解析XML
原文地址:http://blog.51cto.com/12173069/2086274