解析XML

09120170930
1、如何解析网页中xml文件里的内容到自己的html页面中?

2、全部文件放在服务器的启动目录下:../htdoc

3、代码如下:





   
   
解析xml





<script>
window.onload = function() {
  loadData("get", "xml_simple.php", function(textData){
	  //console.log(textData);
	  // 对textData进行xml的解析(反序列化)
	  var xmlDom = getXMLDom(textData);
	  // 对xmlDom进行dom的解析
	  var names = xmlDom.getElementsByTagName("name");
	  // 遍历names
	  for(var i = 0; i < names.length; i++) {
		  // 添加到select中
		  var select = document.getElementById("citys");
		  select.innerHTML += "
  • "; } }); } 对象--> function getXMLDom(str) { // 创建DOMParser对象 var xmlParser = new DOMParser(); // 解析xml字符串 // 参数1 待解析的xml字符串 // 参数2 解析的格式(xml) // 返回值:xmlDOM对象(XMLDocument) var xmlDom = xmlParser.parseFromString(str, "text/xml"); // 判断解析过程中是否会出现parsererror var error = xmlDom.getElementsByTagName("parsererror"); if(error.length == 0) { // 正确 return xmlDom; } else { // 解析错误 var data = error[0].firstChild.data; throw new Error("xml解析错误:" + data); // 抛出异常 } } 字符串--> function serializeDOM(xmlDom) { // 创建XMLSerializer对象 var serializer = new XMLSerializer(); // 进行序列化 var xmlStr = serializer.serializeToString(xmlDom); // 判断解析过程中是否会出现parsererror var error = xmlDom.getElementsByTagName("parsererror"); if(error.length == 0) { // 正确 return xmlStr; } else { // 解析错误 var data = error[0].firstChild.data; throw new Error("xml解析错误:" + data); // 抛出异常 } } function loadData(method, url, fn) { // 1 创建XHR对象 var xmlhttp; if(XMLHttpRequest) { xmlhttp = new XMLHttpRequest(); // W3C } else { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); // IE6 } //alert(xmlhttp); //console.log(xmlhttp); // 2 注册回调函数 xmlhttp.onreadystatechange = function() { if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { var textData = xmlhttp.responseText; if(typeof fn == 'function') { fn(textData); } } }; // 3 创建连接 // 参数1 要发送的请求 "get"或"post" // 参数2 要请求的URL // 参数3 同步还是异步。true异步;false同步 xmlhttp.open(method, url, true); //console.log("end"); // 4 发送请求 xmlhttp.send(null); } </script>

  • 评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包

    打赏作者

    ljt-tiger

    thanks

    ¥1 ¥2 ¥4 ¥6 ¥10 ¥20
    扫码支付:¥1
    获取中
    扫码支付

    您的余额不足,请更换扫码支付或充值

    打赏作者

    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值