Ajax获取XML格式的数据

来源:互联网 发布:中性笔成分知乎 编辑:程序博客网 时间:2024/05/07 18:05

XML格式数据的解析

优点:

  • XML是一种通用的数据格式。
  • 不必把数据强加到已定义好的格式中,二是要为数据自定义合适的标记
  • 利用DOM可以完全掌控文档。

缺点:

  • 如果文档来自于服务器,就必须得保证文档含有正确的首部信息。若文档类型不正确,那么response XML的值是空的。
  • 当浏览器接受到长的XML文件后, DOM解析可能会很复杂。

解析XML代码如下:

1、xml文件(文件名为:test.xml):

<?xml version="1.0" encoding="utf-8" ?><details>    <name>JBK</name>    <website>http://baidu.com/</website>    <email>15204510180@163.com</email></details>

2、js解析文件:

<!doctype html><html lang="en"><head>    <meta charset="UTF-8">    <title>Document</title>    <script>        window.onload = function () {            var  as= document.getElementsByTagName("a");            for(var i=0;i< as.length;i++){                as[i].onclick= function () {                    var request = new XMLHttpRequest();                    var url = this.href;                    var method="GET";                    request.open(method,url);                    request.send(null);                    request.onreadystatechange= function () {                        if( request.readyState==4){                            if(request.status==200||request.status==304){//                                1、结果为XML格式,所以需要使用responseXML;                                var result=request.responseXML;//                                2、结果不能直接使用,必须先创建对应但节点,再把节点加入到#detail中//                                目标格式为://                                      <h2><a href="mailto:15204510180@163.com">JBK</a></h2>//                                      <a href="http://baidu.com/">http://baidu.com</a>                                var name=result.getElementsByTagName("name")[0].firstChild.nodeValue;                                var website=result.getElementsByTagName("website")[0].firstChild.nodeValue;                                var email=result.getElementsByTagName("email")[0].firstChild.nodeValue;                                //alert(name);                                //alert(website);                                //alert(email);                                var aNode=document.createElement("a");                                aNode.appendChild(document.createTextNode(name));                                aNode.href="maelto:"+email;                                var hNode=document.createElement("h2");                                hNode.appendChild(aNode);                                var aNode1=document.createElement("a");                                aNode.appendChild(document.createTextNode(website));                                aNode.href=website;                                var dNode=document.getElementById("details");                                dNode.innerHTML="";                                dNode.appendChild(aNode);                                dNode.appendChild(aNode1)                            }                        }                    }                    return false;                }            }        }    </script></head><body><a href="test.xml">1</a><a href="test.xml">2</a><a href="test.xml">3</a><a href="test.xml">4</a><div id="details"></div></body></html>
0 0
原创粉丝点击