js获取xml数据,兼容各大浏览器

简介:
 

js获取xml数据,兼容各大浏览器

 

function getXMLNode( str_xmlUrl, str_dirPath )
{  
        if( !str_xmlUrl || !str_dirPath )
                return false;
        var _bool_IE = ( window.ActiveXObject ? true : false );
        var _obj_xmlDoc;
        if( _bool_IE )
                _obj_xmlDoc = new ActiveXObject( 'Microsoft.XMLDOM' );
        else
                _obj_xmlDoc = document.implementation.createDocument("","",null);
                
        _obj_xmlDoc.async = false;
        try
        { 
                _obj_xmlDoc.load( str_xmlUrl );  //ie 下 js获取xml
        }// try
        catch ( E )
        {
                return false;
        }// catch
        /* Mozila Firefox */
        if( !_bool_IE )
        {
                var _arr_dirPath = str_dirPath.split( '/' );
                if( !_arr_dirPath[0] )
                        _arr_dirPath.shift();
                if( !_arr_dirPath )
                        return false;
                        
                var _obj_aimElement = _obj_xmlDoc;

                var _obj_reg = /\[([0-9]+)\]/ig;

                for( var _int_i = 0; _int_i < _arr_dirPath.length; _int_i ++ )
                {
                        var _int_localIndex = 0;
                        var _int_aimIndex = 0;
                        var _str_dirPath = _arr_dirPath[_int_i];
                        var _arr_result = _obj_reg.exec( _str_dirPath );
                        var bool_catch = false;
                        if( _arr_result )
                        {
                                _int_aimIndex = _arr_result[1];
                                _str_dirPath = _str_dirPath.replace( _arr_result[0], '' );
                        }// if
                        
                        var _arr_childNodes = _obj_aimElement.childNodes;
                        for( var _int_j = 0; _int_j < _arr_childNodes.length; _int_j ++ )
                        {
                                if( _arr_childNodes[_int_j].nodeName == _str_dirPath )
                                {
                                        if( _int_localIndex == _int_aimIndex )
                                        {
                                                _obj_aimElement = _arr_childNodes[_int_j];
                                                bool_catch = true;
                                                break;
                                        }// if
                                        else
                                                _int_localIndex += 1;
                                }// if
                        }// for
                        if( !bool_catch )
                        {
                                return false;
                        }
                }// for
                return( _obj_aimElement.childNodes[0].nodeValue );  //firefox下 js获取xml

        }// if
        
        /* Microsoft IE */
        try
        {
                return _obj_xmlDoc.selectNodes( str_dirPath )[0].text;
        }
        catch( e )
        {
                return false;
        }
        return false;
}
    
    alert(getXMLNode("http://www.baidu.com/?xml","data/pageId"));






      本文转自yjflinchong 51CTO博客,原文链接:http://blog.51cto.com/yjflinchong/1165111,如需转载请自行联系原作者


相关文章
|
3月前
|
XML 存储 JSON
Twaver-HTML5基础学习(19)数据容器(2)_数据序列化_XML、Json
本文介绍了Twaver HTML5中的数据序列化,包括XML和JSON格式的序列化与反序列化方法。文章通过示例代码展示了如何将DataBox中的数据序列化为XML和JSON字符串,以及如何从这些字符串中反序列化数据,重建DataBox中的对象。此外,还提到了用户自定义属性的序列化注册方法。
48 1
|
1月前
|
数据采集 存储 JavaScript
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
本文介绍了如何使用Puppeteer和Node.js爬取大学招生数据,并通过代理IP提升爬取的稳定性和效率。Puppeteer作为一个强大的Node.js库,能够模拟真实浏览器访问,支持JavaScript渲染,适合复杂的爬取任务。文章详细讲解了安装Puppeteer、配置代理IP、实现爬虫代码的步骤,并提供了代码示例。此外,还给出了注意事项和优化建议,帮助读者高效地抓取和分析招生数据。
如何使用Puppeteer和Node.js爬取大学招生数据:入门指南
|
2月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
XML DOM 浏览器差异
|
2月前
|
前端开发 JavaScript
JS-数据筛选
JS-数据筛选
34 7
|
2月前
|
JavaScript 数据安全/隐私保护
2024了,你会使用原生js批量获取表单数据吗
2024了,你会使用原生js批量获取表单数据吗
53 4
|
2月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
XML DOM 浏览器差异
|
2月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
XML DOM 浏览器差异
|
2月前
|
NoSQL 前端开发 MongoDB
前端的全栈之路Meteor篇(三):运行在浏览器端的NoSQL数据库副本-MiniMongo介绍及其前后端数据实时同步示例
MiniMongo 是 Meteor 框架中的客户端数据库组件,模拟了 MongoDB 的核心功能,允许前端开发者使用类似 MongoDB 的 API 进行数据操作。通过 Meteor 的数据同步机制,MiniMongo 与服务器端的 MongoDB 实现实时数据同步,确保数据一致性,支持发布/订阅模型和响应式数据源,适用于实时聊天、项目管理和协作工具等应用场景。
|
3月前
|
JavaScript 前端开发 安全
js逆向实战之烯牛数据请求参数加密和返回数据解密
【9月更文挑战第20天】在JavaScript逆向工程中,处理烯牛数据的请求参数加密和返回数据解密颇具挑战。本文详细分析了这一过程,包括网络请求监测、代码分析、加密算法推测及解密逻辑研究,并提供了实战步骤,如确定加密入口点、逆向分析算法及模拟加密解密过程。此外,还强调了法律合规性和安全性的重要性,帮助读者合法且安全地进行逆向工程。
101 11
|
2月前
|
XML JavaScript 数据格式
XML DOM 浏览器差异
XML DOM 浏览器差异