加载中…
个人资料
shichongwei
shichongwei
  • 博客等级:
  • 博客积分:0
  • 博客访问:65,500
  • 关注人气:15
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

js读取xml

(2009-12-01 09:54:37)
标签:

js

读取xml

兼容

浏览器

it

分类: 程序代码

这次准备使用JS来读取XML做一个例子来熟悉下,一共使用了一下几个技术:Json,array排序,读取xml,下面我就贴出代码:

第一部:我们需要学习如何判断浏览器的类型:

下面是几个主流的浏览器使用js的判断方法

function getOs()

{

     var OsObject = "";

    if(navigator.userAgent.indexOf("MSIE")>0) {

         return "MSIE";  

    }

    if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){

         return "Firefox";

    }

    if(isSafari=navigator.userAgent.indexOf("Safari")>0) {

         return "Safari";

    

    if(isCamino=navigator.userAgent.indexOf("Camino")>0){

         return "Camino";

    }

    if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0){

         return "Gecko";

    }

}

通过以上方法,大家可以取出浏览器的类型,根据浏览器的不同类型,我们使用不同的方式来实例化对象:

下面就是我写的所有代码,大家可以参考下:

<!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对象

               

                dom.async = false;                            

                dom.load("NewInfo.xml");                        //加载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("NewInfo.xml");

               

            }

            else

            {

                window.alert('暂不识别该浏览器!');

                return;

            }

          

            if(dom)

            {

                var node;

              

                if(type == 1)   //判断是否为IE浏览器

                {

                    node = dom.documentElement.childNodes;      //这里的node大家可以理解为net中的表,方便大家理解

                  

                    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

                {

                    var node = dom.getElementsByTagName_r("News");

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

                    {

//                        window.alert(dom.getElementsByTagName_r("News")[i].childNodes[1].textContent);

//                        window.alert(dom.getElementsByTagName_r("News")[i].childNodes[3].textContent);

//                        window.alert(dom.getElementsByTagName_r("News")[i].childNodes[5].textContent);

                        var value = dom.getElementsByTagName_r("News")[i].textContent.split(' ');

                        var title = value[4];

                        var content = value[8];

                        var date = value[12];

                        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.getElementByIdx('textDiv').innerHTML = shtml;

            }

            else

            {

                document.getElementByIdx('textDiv').innerHTML = '没有信息!';

            }

        }

    </script>

</head>

<body onload="NewInfoAction()">

<div id="textDiv" >

</div>

</body>

</html>

一下是xml的文件格式:

<?xml version="1.0" encoding="utf-8" ?>

<NewInfo>

<News>

    <Title>今天要下雨</Title>

    <Content>今天确实下雨了</Content>

    <Date>2009-02-04</Date>

</News>

<News>

    <Title>今天出太阳</Title>

    <Content>今天确实出太阳了</Content>

    <Date>2009-02-03</Date>

</News>

<News>

    <Title>今天很无聊</Title>

    <Content>今天确实很无聊</Content>

    <Date>2009-02-02</Date>

</News>

</NewInfo>

ok,大家把他们放到同一个文件夹里面就ok了。

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有