js解析rss或xml

js解析有两种方式:

一、主要用getElementsByTag将xml格式的文档导入到数组中,对数组中的结点用childNodes[index]得到子节点的方式进行访问,或者也可以通过getElementByTag的方式接着进行获取节点数组,获取节点为内容,ie用text,firefox用textcontent

二、通过dom.documentElement从根节点获取到子节点的方式进行访问

以下是程序

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>JS读取XMLDemo</title>

    <script language="javascript" type="text/javascript">


        function NewInfoAction()
        {
            var dom;
            var type=1;                                         //默认为IE浏览器
            var data = new Array();                             //存储实体的数组 
         
            if(navigator.userAgent.indexOf("MSIE")>0)
            {
                dom = new ActiveXObject("Microsoft.XMLDOM");    //实例化dom对象
                /*
                    这个地方很多朋友不明白,我写详细点
                    设置异步处理
                    本函数不需要在XML文件读取完成之前进行任何操作,
                    因此关闭异步处理功能。
                */
                dom.async = false;                           
                dom.load("http://***/rss/26-67.html");                        //加载xml文件
                window.alert('IE');
            }
            else if(isFirefox=navigator.userAgent.indexOf("Firefox") > 0)
            {
                type=2;
                dom = document.implementation.createDocument("", "", null);         //火狐不支持ActiveXObject
                dom.async = false;
                dom.load("http://***/rss/26-67.html");
                /*
                    这是火狐的另外一中加载xml的方式
                    var oXmlHttp = new XMLHttpRequest() ;
                    oXmlHttp.open( "GET", "test.xml", false ) ;
                    oXmlHttp.send(null) ;
                    //oXmlHttp.responseXML就是xml对象了。
                */
            }
            else
            {
                window.alert('暂不识别该浏览器!');
                return;
            }
         
            if(dom)
            {
                var node;
 
                node = dom.getElementsByTagName("item");//这里的node大家可以理解为net中的表,方便大家理解           
                if(type == 1)   //判断是否为IE浏览器
                {
                    for(var i=0;i<node.length;i++)
                    {
                        var title = node[i].childNodes[0].text;                 //取出i行中的字段的值,大家这样理解更方便
                        var content = node[i].childNodes[1].text;
                        var date = node[i].childNodes[2].text;
                        data.push({title:title,content:content,date:date});     //在这里,我们使用使用json,把数据库存储在里面
                    }
                }
                else
                {           
                    for(var i=0;i<node.length;i++)
                    {
                        var title = node[i].childNodes[1].textContent;                 //取出i行中的字段的值,大家这样理解更方便
                        var content = node[i].childNodes[3].textContent;
                        var date = node[i].childNodes[5].textContent;
                        data.push({title:title,content:content,date:date});     //在这里,我们使用使用json,把数据库存储在里面
                    }
                }
            }
            else
            {
                window.alert("dom对象为空,失败了!");
                return;
            }
         
            if(data.length != 0)
            {
                var shtml = '';
                for(var i=0;i<data.length;i++)
                {

                    shtml += '<div>';
                    shtml += '<div style="float:left; background-color:Red; width:80px; height:15px">';
                    shtml += data[i].title;
                    shtml += '</div>';
                    shtml += '<div>';
                    shtml += '<div style="float:left; background-color:Green;width:150px; height:15px">';
                    shtml += data[i].content;
                    shtml += '</div>';
                    shtml += '<div style="float:left; background-color:Green;width:120px; height:15px">';
                    shtml += data[i].date;
                    shtml += '</div>';
                    shtml += '</div>';
                    shtml += '</div>';
                    shtml += '<br/>';
                }
                document.getElementById('textDiv').innerHTML = shtml;
            }
            else
            {
                document.getElementById('textDiv').innerHTML = '没有信息!';
            }
        }
    </script>

</head>
<body οnlοad="NewInfoAction()">
<div id="textDiv" >

</div>
</body>

</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值