+ -
当前位置:首页 → 问答吧 → Ajax读取PHP生成的XML文件每个节点的内容显示undefined

Ajax读取PHP生成的XML文件每个节点的内容显示undefined

时间:2011-08-04

来源:互联网

最近开发一个空间系统,首页使用到Ajax效果像腾讯空间那样上边显示文档内容,下面显示评论,但是却出现异常
//下面是JS文件CreateAjax()是用来生成Ajax头的
function listXMLComments(main_channel,second_channel,div,url){

var Data="main="+main_channel+"&"+"second="+second_channel+"&"+"div="+div;

CreateAjax();

xmlHttp.onreadystatechange=listXMLCallBack;

xmlHttp.open("POST",url+"?r="+new Date().getTime(),true);

xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

xmlHttp.send(Data);

return false;

}


function listXMLCallBack(){//回调函数

if(xmlHttp.readyState==4){

if(xmlHttp.status==200){

var xmlDOC=xmlHttp.responseXML;

var root=xmlDOC.documentElement;

var comments=xmlDOC.getElementsByTagName("comment");

/*alert(comments.length);*/

var att=root.attributes;

/*alert(att);*/

var main=att.getNamedItem("main").value;

var second=att.getNamedItem("second").value;

var div=att.getNamedItem("ID").value;

var data="";

alert(comments[0].firstChild.nodeValue);

/*var array=comments.toString;

alert(array);*/

for(var i=0;i<comments.length;i++){

var data=data+"<div id='"+comments[i].childNodes["1"].firstChild.text+"' class='comment_box'><img src='images/11.gif' width='25' height='23' /><span>"+comments[i].getElementsByTagName("commenter").nodeValue+"</span>"+comments[i].getElementsByTagName("content").nodeValue+"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+comments[i].getElementsByTagName("date").nodeValue+"&nbsp;&nbsp;"+comments[i].getElementsByTagName("time").nodeValue+"&nbsp; &nbsp; <a href='#'>回复&nbsp; </a><span>删除</span></div>";

}

document.getElementById(div).innerHTML=data;

}

}


}

PHP生成的XML文件如下,先声明一下PHP生成的XML是没有问题的,我测试了很多遍都可以生成正常的XML
 <?xml version="1.0" encoding="UTF-8" ?> 
<div main="1" second="2" ID="test">
<comment>
  <ID>5</ID> 
  <date>2011-07-10</date> 
  <time>15:12:15</time> 
  <content>八面碰壁居士和你有缘希望交个朋友</content> 
  <commenter>3</commenter> 
  </comment>
<comment>
  <ID>4</ID> 
  <date>2011-07-10</date> 
  <time>14:15:12</time> 
  <content>曹操也来看你了</content> 
  <commenter>1</commenter> 
  </comment>
<comment>
  <ID>3</ID> 
  <date>2011-07-10</date> 
  <time>01:12:45</time> 
  <content>我自己来查看一下了</content> 
  <commenter>2</commenter> 
  </comment>
</div>

结果页面显示
/////////////////////////////////////
这里是内容就不说了,只说下面的评论
图片 undefinedundefined undefined undefined 回复 删除
图片 undefinedundefined undefined undefined 回复 删除
图片 undefinedundefined undefined undefined 回复 删除

请问这是怎么回事啊,请帮我解决一下

作者: PainsOnline   发布时间: 2011-08-04

comments[i].getElementsByTagName("content").innerHTML

不用nodeValue用innerHTML试试呢~·

或者
comments[i].getElementsByTagName("content").fireChild.nodeValue这样~·

作者: MuBeiBei   发布时间: 2011-08-04

热门下载

更多