码迷,mamicode.com
首页 > Web开发 > 详细

HTML使用XPATH解析XML

时间:2018-03-13 23:57:38      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:HTML使用XPATH解析XML

  • 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>
  • test.html:
    <script type="text/javascript">
    /*
     @desc 加载XHR文件
     @author lee [<[email protected]>]
     @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<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 Potter
    Everyday Italian
    Learning XML
    XQuery Kick Start
  • HTML使用XPATH解析XML

    标签:HTML使用XPATH解析XML

    原文地址:http://blog.51cto.com/12173069/2086274

    (0)
    (0)
       
    举报
    评论 一句话评论(0
    0条  
    登录后才能评论!
    © 2014 mamicode.com 版权所有 京ICP备13008772号-2
    迷上了代码!