Ajax初学者--RSS源解析

//GetRss.htm文件源码

 

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Ajax 解析 XML 示例</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<script language="javascript">

var bloglist=new Array();
var xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");//定义一个自动化对象
function startload(){
        xmlHttp.open("GET","http://feeds.feedsky.com/csdn.net/jpl12",true);
        xmlHttp.onreadystatechange=function(){
        if(xmlHttp.readystate==4 && xmlHttp.status==200){
        /**
             * 背景资料7:
             * 1、响应后状态 readyState:
             * 只有当一个完整的服务器响应已经收到了,函数才可以处理该响应。XMLHttpRequest
             * 提供了readyState属性来对服务器响应进行判断。
             * readyState的取值如下:
             *   0 (未初始化)
             *   1 (正在装载)
             *   2 (装载完毕)
             *   3 (交互中)
             *   4 (完成)
             * 所以只有当readyState=4时,一个完整的服务器响应已经收到了,函数才可以处理该响应。
             *  if (xmlHttp.readyState == 4)
             *  {
             *      // 收到完整的服务器响应
             *  }
             **/
        var xmldom=xmlHttp.responseXML;//创建基于XML的DOM
        var channel=xmldom.documentElement.childNodes.item(0);//获取节点的值。

        var itemlist=channel.childNodes;//将XML中所有子结点取出(也就是除根节点以外的),赋给itemlist。
       
        for(var i=0;i<itemlist.length;i++){//使用循环将每个子结点中的内容取出,赋给相应的Div,以便显示。
           
            var node=itemlist.item(i);//取出其中一个子结点
           
            if(node.tagName=="title"){//"title","description","generator","item",均为XML中的元素
                blogtitle.innerHTML=node.text;
            }
            if(node.tagName=="description"){
                blogdescription.innerHTML=node.text;
            }
            if(node.tagName=="generator"){
                bloggenerator.innerHTML=node.text;
            }
            if(node.tagName=="item"){
                bloglist[bloglist.length]=node.childNodes;
            }
        }
        showitem(bloglist[0]);
    }
 }
xmlHttp.send(null);
/*备注                                                                                     
xmlHttp.send( );:此方法的同步或异步方式取决于open()方法中的bAsync参数,                                   
如果bAsync == False,此方法将会等待请求完成或者超时时才会返回,                          
如果bAsync == True,此方法将立即返回。                                                   
                                                                                         
                                                                                         
如果发送的数据为BSTR,则回应被编码为utf-8, 必须在适当位置设置一个包含charset的文档类型头。
                                                                                         
如果发送的数据为XML DOM object,则回应将被编码为在xml文档中声明的编码,如果在xml文档中没有声明编码,则使用默认的UTF-8。*/

}
function showitem(itemlist){
    for(var i=0;i<itemlist.length;i++){
        var node=itemlist.item(i);
        if(node.tagName=="title"){
            itemtitle.innerHTML=node.text;
        }
        if(node.tagName=="link"){
            itemlink.href=node.text;
        }
        if(node.tagName=="description"){
            description.innerHTML=node.text;
        }
        if(node.tagName=="author"){
            author.innerHTML=node.text;
        }
        if(node.tagName=="pubDate"){
            pubDate.innerHTML=node.text;
        }
    }
}
</script>

<body οnlοad="startload()">

<a id="bloglink" href="#"><div id="blogtitle"></div></a>
<br />   
<div id="bloggenerator"></div>
<br />
<div id="blogdescription"></div>
<br />
<a id="itemlink" href="#"><div id="itemtitle"></div></a>
<br />
<div id="author"></div>
<br />
<div id="description"></div>
<br />
<div id="pubDate" align="right"></div>
</body>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值