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+" "+comments[i].getElementsByTagName("date").nodeValue+" "+comments[i].getElementsByTagName("time").nodeValue+" <a href='#'>回复 </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 回复 删除
请问这是怎么回事啊,请帮我解决一下
//下面是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+" "+comments[i].getElementsByTagName("date").nodeValue+" "+comments[i].getElementsByTagName("time").nodeValue+" <a href='#'>回复 </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这样~·
不用nodeValue用innerHTML试试呢~·
或者
comments[i].getElementsByTagName("content").fireChild.nodeValue这样~·
作者: MuBeiBei 发布时间: 2011-08-04
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28