js通用解析XML

稿件来源: 互联网   撰稿作者: 太阳光   发表日期: 2009-05-06 20:23:31   阅读次数: 493   查看权限: 游客查看

js通用解析XML

 

<script type="text/javascript"> 
  //建立XMLdom对象,并载入xml,xmlFilePath为xml的文本路径 
    function CreateXMLDoc(xmlFilePath){ 
        
      try{
        if(window.ActiveXObject) 
        { 
            //获得操作的xml文件的对象 
            var msXMLdom = new ActiveXObject('Microsoft.XMLDOM'); 
            msXMLdom.async = false; 
            msXMLdom.load(xmlFilePath); 
            return msXMLdom; 
        } 
        else 
        { 
        var oXmlHttp = new XMLHttpRequest() ;
    oXmlHttp.open( "GET", xmlFilePath, false ) ;
    oXmlHttp.send(null) ;
    return oXmlHttp.responseXML;

        
        }
        }
        catch(e){alert("error");
        }

} 
//创建对象 
var xmlDoc; 
xmlDoc=CreateXMLDoc("xml.xml"); 
//var root=xmlDoc.childNodes[1];
if(window.ActiveXObject){
var root=xmlDoc.documentElement.selectSingleNode("/booklist");
}else{
var root=xmlDoc.getElementsByTagName("//booklist");
}
//或xmlDoc.documentElement;或root=orderDoc.selectSingleNode("/booklist");//得到根节点 

disTree(root,"");


function disTree(curNode,tag){ 
    
        var childs=curNode.childNodes; 
        var att=curNode.attributes; 
        var s="--"; 
        var i=0; 
        //名字 
        document.writeln(tag+curNode.nodeName+" <br>"); 
        
        if(att.length>0){ 
            for(i=0;i <att.length;i++){ 
                var content=s+tag+att.item(i).nodeName+":"+att.item(i).value+" <br>"; 
                document.writeln(content); 
            } 
        } 
        
        if(childs.length==1){ 
            document.writeln(s+tag+curNode.text+"<bt>"); 
            return; 
        } 
        
        //如果用子节点,递归调用 
        for(i=0;i <childs.length;i++){ 
            var str=s+tag; 
            disTree(childs.item(i),str); 
        } 
        
    } 

</script> 

<html>
<body>
</body>
</html>

不过有一个问题是只支持IE 如果你知道怎么修改一下支持FF不防告诉我!

关键词: js解析xml,xml,javascript   编辑时间: 2010-03-12 10:18:31

  • 感到高兴

    2

    高兴
  • 感到支持

    0

    支持
  • 感到搞笑

    0

    搞笑
  • 感到不解

    0

    不解
  • 感到谎言

    0

    谎言
  • 感到枪稿

    0

    枪稿
  • 感到震惊

    0

    震惊
  • 感到无奈

    0

    无奈
  • 感到无聊

    0

    无聊
  • 感到反对

    0

    反对
  • 感到愤怒

    0

    愤怒
100%(1)
0%(0)
共有0 条评论 发言请遵守【相关规定

网友评论

会员头像
发 表同步腾讯微博    验证码:  点击更新请先登陆
  • 暂无评论
关闭模块文章图片 article Pictrue
  • 我的妈妈爸爸
  • 基于koa2+mysql+vue2.0+Element阳光内容管理系统
  • 代码覆盖率工具 Istanbul 入门教程
  • 全栈工程师的武器——MEAN
  • 9款超炫的 CSS3 复选框(Checkbox)
  • 微信开发在线翻译功能
  • CSS3那些不为人知的高级属性
  • 给easyui的datebox添加清空事件
  • flash写字效果
  • kendoUI系列教程之DropDownList下拉菜单
  • kendoUI系列教程之datetimepicker日期时间选择
  • kendoUI系列教程之datepicker日期选择
  • kendoUI系列教程之combobox下拉列表框
  • kendoUI系列教程之colorpicker
  • kendoUI系列教程之calendar日历表
  • kendoUI系列教程之autocomplete自动补齐