ajax中responseXML对xml文档的处理问题

danwell7 2012-09-14 01:59:07
<script language="javascript" src="MyScripts/ajax.js"></script>
<script type="text/javascript">
window.onload = function () {
ajax({
url: "rss.xml",
onSuccess: function( rss ){

var feed = document.getElementById( "feed" );

var titles=rss.getElementsByTagName( "title" );

for(var i=0; i < titles.length; i++ ){
var li=document.createElement( "li" );
li.innerHTML=titles[i].firstChild.nodeValue;

feed.appendChild(li);
}
}

});
};
</script>
</head>

<body>
<h1> Dynamic RSS Feed widget</h1>
<p>check out my RSS Feed:</p>
<ol id="feed"> </ol>

</body>
</html>



上面的是把rss.xml中的title元素的孩子节点显示在id="feed"处, ajax执行成功,
responseXML返回是rss.xml文档,赋给function( rss )中的参数。xml文档没问题,
为什么这儿提示"...getElementsByTagName"对象不存在这样的方法或属性?ajax返回的
xml文档不能用getElementsByTagName解析吗??



...全文
127 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Go 旅城通票 2012-09-14
  • 打赏
  • 举报
回复
onSuccess的参数你是传递了ajax对象的responseText还是responseXML?responseText是字符串,当然没有getElementsByTaName,需要传递responseXML
danwell7 2012-09-14
  • 打赏
  • 举报
回复
这是MyScripts/ajax.js:

var XMLHttp=function(){
if( window.XMLHttpRequest ){
return new XMLHttpRequest();
}else{
return new ActiveXObject("Microsoft.XMLHTTP");
}
};

function ajax ( muti_option){
muti_option={
type: muti_option.type || "post",
url: muti_option.url || "",
timeout: muti_option.timeout || 5000,
onComplete: muti_option.onComplete || function (){},
onError: muti_option.onError || function (){},
onSuccess: muti_option.onSuccess || function (){},
data: muti_option.data || ""   

};

var xmlhttp = new XMLHttp();
xmlhttp.open( muti_option.type, muti_option.url, true);
xmlhttp.setRequestHeader("Content-type","text/xml");
var timeoutlength = muti_option.timeout;
var requestDone = false;
setTimeout( function(){ return requestDone = true },timeoutlength );
xmlhttp.onreadystatechange = function() {

if( xmlhttp.readyState == 4 && ! requestDone) {

if( httpSuccess( xmlhttp ) ){

muti_option.onSuccess( httpData( xmlhttp, muti_option.type));

}else{
muti_option.onError();
}
muti_option.onComplete();
xmlhttp=null;
}

};

xmlhttp.send();

function httpSuccess( xmlhttp ){
try{

return !xmlhttp.status && location.protocol == "file" ||
( xmlhttp.status >= 200 && xmlhttp.status < 300 ) ||
xmlhttp.status == 304 || navigator.userAgent.indexOf( "safari" ) >0
&& typeof xmlhttp.status == "undefined";

}catch(e){
return false ;//表明请求失败
}
}

function httpData( xmlhttp,type ){
var ct=xmlhttp.getResponseHeader( "content-type" );
var data=!type && ct && ct.indexOf("xml")> 0;
data= type == "xml" || data ? xmlhttp.responseXML : xmlhttp.responseText;
if( type== "script")
eval.call( window,data );
return data;
}

}



danwell7 2012-09-14
  • 打赏
  • 举报
回复
rss 代表怎个rss.xml文档对象,即responseXML响应的值
licip 2012-09-14
  • 打赏
  • 举报
回复
rss这个是document对象吗?你可能是字符串吧。

52,804

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧