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 JavaScript 数据格式
XML DOM 浏览器差异
现代浏览器均支持W3C DOM,但存在差异,如处理XML中节点间的空白和换行。IE不将这些视为文本节点,而其他浏览器则会。示例显示,一个包含CR/LF和空格的XML文件在IE中解析有4个子节点,而在其他浏览器中有9个。`loadXMLDoc()`加载XML后,`documentElement.childNodes.length`的值因浏览器而异。
|
2天前
|
JSON JavaScript 前端开发
若依修改,若依如何发送get和post请求,发送数据请求的写法,若依请求的API在src的api文件下,建立请求的第一步,在API中新建一个文件,第二步新建JavaScript文件
若依修改,若依如何发送get和post请求,发送数据请求的写法,若依请求的API在src的api文件下,建立请求的第一步,在API中新建一个文件,第二步新建JavaScript文件
|
3天前
|
JavaScript
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
js中readAsDataURL的意思,可以用于浏览器预览图像文件或者转成base64字符串
|
5天前
|
存储 前端开发 安全
JavaScript进阶 - 浏览器存储:localStorage, sessionStorage, cookies
【7月更文挑战第2天】探索Web存储:localStorage持久化,sessionStorage会话限定,cookies则伴随HTTP请求。了解它们的特性和限制,如localStorage的5MB容量限制、跨域问题,sessionStorage的生命周期,及cookies的安全与带宽消耗。使用时需权衡安全、效率与应用场景。示例代码展示存储与检索方法。
|
2天前
|
存储 Web App开发 JavaScript
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
浏览器【详解】Cookie(含Cookie的起源,属性,个数和大小限制,作用,优点,缺点,JS 的操作方法等)
5 0
|
2天前
|
编解码 JavaScript 容器
js 获取浏览器相关的宽高尺寸
js 获取浏览器相关的宽高尺寸
8 0
|
3天前
|
JavaScript
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
JS字符串数据类型转换,字符串如何转成变量,+号只要有一个是字符串,就会把另外一个转成字符串,- * / 都会把数据转成数字类型,数字型控制台是蓝色,字符型控制台是黑色,
|
3天前
|
JavaScript
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值
Js,定义数组的方法,let 数组名 = [数据1,数据2,........,数据n],取值方法,数组名[x],arr[0],let sum sum = sum + arr[0],求和的写法,平均值
前后端数据交互,request.js文件添加拦截器的写法,数据请求失败后的固定写法
前后端数据交互,request.js文件添加拦截器的写法,数据请求失败后的固定写法
|
4天前
|
JavaScript API
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用
前后端数据交互.js文件的axios的写法,想要往后端发送数据,页面注入API,await的意思是同步等待服务器数据,并返回,axios注入在其他页面,其他页面调用的时候,同步作用