我在使用javascript 解析XML文档时候碰到了一些问题,想请问各位应该如何解决。
以下是我的JS函数代码,
function XMLResult(xhr) { //xhr是我已经获取到的XMLHttpRequest 对象
var x, i, xmlDoc, txt;
xmlDoc = xhr.responseXML; //获取XML文档对象
txt = "";
x = xmlDoc.getElementsByTagName('info'); // 返回element为info的List
for (i = 0; i < x.length; i++) {
txt += "第" + (i + 1) + "位用户发言 : ";
txt += x[i].childNodes[0].nodeValue + "<br />"; //这里解析有错误
}
document.getElementById("historyInfo").innerHTML = txt;
}
下面是需要解析的XML文档
<?xml version="1.0" encoding="utf-8"?>
<message>
<info id="1">
<username>duxingzhe</username>
<content>hello world --by diankuangzhe</content>
</info>
<info id="2">
<username>duxingzhe</username>
<content>试试编码怎么样?</content>
</info>
<info id="3">
<username>wky</username>
<content>happybirthday</content>
</info>
<info id="4">
<username>duxingzhe</username>
<content>42141</content>
</info>
<info id="5">
<username>duxingzhe</username>
<content>haha</content>
</info>
<info id="6">
<username>duxingzhe</username>
<content>不知道呀</content>
</info>
<info id="7">
<username>duxingzhe</username>
<content>你好呀</content>
</info>
<info id="8">
<username>duxingzhe</username>
<content>你好呀</content>
</info>
</message>
具体的出错情况是获取到的txt += x[i].childNodes[0].nodeValue + "<br />";
这行代码得到的内容为null ,但是事实上在xml文档中是有对应内容存在的。我网上查找了,有方案说把语句更改为:txt += x[i].firstChild.nodeValue + "<br />";
,但是并不适用于我的情况,仍然返回 null 。现在我不清楚该如何解决这个问题。希望能得到你们的帮助,感激不尽...