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,如需转载请自行联系原作者