为了账号安全,请及时绑定邮箱和手机立即绑定

html使用xpath解析xml

标签:
Html/CSS

  1. test.xml:

    <?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>
  2. test.html:

    <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>
  3. 输出:

    Harry PotterEveryday ItalianLearning XMLXQuery Kick Start

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
移动开发工程师
手记
粉丝
39
获赞与收藏
243

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消