当前位置: 代码迷 >> XML/SOAP >> js解析xml有关问题
  详细解决方案

js解析xml有关问题

热度:459   发布时间:2012-02-17 17:50:42.0
js解析xml问题
1.html:<html>
<body>
<h1>W3School.com.cn Internal Note</h1>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>

<script type="text/javascript">
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","1.xml",false);
xmlhttp.send();
var xmlDoc=xmlhttp.responseXML;

document.getElementById("to").innerHTML= 
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>

</body>
</html>

1.xml:
<?xml version="1.0" encoding="gb2312"?>

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>

使用简易IIS服务器.1.xml和1.html都在同个文件夹下
页面效果为:没有获得xml节点的值,为什么?

------解决方案--------------------
没有错误,楼主再看看是不是其他 原因
------解决方案--------------------
调试了一下,这样可以了,获得resposneText然后再转换成xml
HTML code
<html>
<body>
<h1>W3School.com.cn Internal Note</h1>
<p><b>To:</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>

<script type="text/javascript">
var xmlParse = function(str) 
{
    if (typeof ActiveXObject != 'undefined' && typeof GetObject != 'undefined') 
    {
        var doc = new ActiveXObject('Microsoft.XMLDOM');
        doc.loadXML(str);
        return doc;
    }

    if (typeof DOMParser != 'undefined') 
    {
        return (new DOMParser()).parseFromString(str, 'text/xml');
    }
    return createElement('div', null);
}


var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","test.xml",false);
xmlhttp.send();

var xmlDoc=xmlParse(xmlhttp.responseText);

document.getElementById("to").innerHTML= xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;

document.getElementById("from").innerHTML=xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;

document.getElementById("message").innerHTML=xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
</script>

</body>
</html> 
  相关解决方案