这个函数不错
<html>
<head>
<script>
var nodes = getXMLNodes("http://www.mmocard.com/1111.xml","xml-body");
if(nodes!=null && nodes.length>0)
{
alert(nodes[0].text);
}function getXMLNodes( xmlUrl, sXPath)
{
if( !xmlUrl || !sXPath )
return null;
var isIE = ( window.ActiveXObject ? true : false );
var xmlDoc;
if( isIE )
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
else
xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.async = false;
try
{
xmlDoc.load(xmlUrl);
}
catch(e)
{
return null;
}
if( !isIE )
{
var arrPath = sXPath.split("/");
if( !arrPath[0] )
arrPath.shift();
if( !arrPath )
return null;
var objElement = xmlDoc;
var _obj_reg = /\[([0-9]+)\]/ig;
for( var i = 0; i < arrPath.length; i ++ )
{
var localIndex = 0;
var aimIndex = 0;
var _sXPath = arrPath[i];
var _arr_result = _obj_reg.exec( _sXPath );
var bool_catch = false;
if( _arr_result )
{
aimIndex = _arr_result;
_sXPath = _sXPath.replace( _arr_result[0], "" );
}
var arrChldNodes = objElement.childNodes;
for( var j = 0; j < arrChldNodes.length; j ++ )
{
if( arrChldNodes[j].nodeName == _sXPath )
{
if( localIndex == aimIndex )
{
objElement = arrChldNodes[j];
bool_catch = true;
break;
}
else
localIndex += 1;
}
}
if( !bool_catch )
{
return null;
}
}
return objElement.childNodes;
}
try
{
return xmlDoc.selectNodes(sXPath);
}
catch(e)
{
return null;
}
return null;
}</script>
</head>
<body></body>
</html>
<html>
<head>
<script>
var nodes = getXMLNodes("http://www.mmocard.com/1111.xml","xml-body");
if(nodes!=null && nodes.length>0)
{
alert(nodes[0].text);
}function getXMLNodes( xmlUrl, sXPath)
{
if( !xmlUrl || !sXPath )
return null;
var isIE = ( window.ActiveXObject ? true : false );
var xmlDoc;
if( isIE )
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
else
xmlDoc = document.implementation.createDocument("","",null);
xmlDoc.async = false;
try
{
xmlDoc.load(xmlUrl);
}
catch(e)
{
return null;
}
if( !isIE )
{
var arrPath = sXPath.split("/");
if( !arrPath[0] )
arrPath.shift();
if( !arrPath )
return null;
var objElement = xmlDoc;
var _obj_reg = /\[([0-9]+)\]/ig;
for( var i = 0; i < arrPath.length; i ++ )
{
var localIndex = 0;
var aimIndex = 0;
var _sXPath = arrPath[i];
var _arr_result = _obj_reg.exec( _sXPath );
var bool_catch = false;
if( _arr_result )
{
aimIndex = _arr_result;
_sXPath = _sXPath.replace( _arr_result[0], "" );
}
var arrChldNodes = objElement.childNodes;
for( var j = 0; j < arrChldNodes.length; j ++ )
{
if( arrChldNodes[j].nodeName == _sXPath )
{
if( localIndex == aimIndex )
{
objElement = arrChldNodes[j];
bool_catch = true;
break;
}
else
localIndex += 1;
}
}
if( !bool_catch )
{
return null;
}
}
return objElement.childNodes;
}
try
{
return xmlDoc.selectNodes(sXPath);
}
catch(e)
{
return null;
}
return null;
}</script>
</head>
<body></body>
</html>
在ie下可以,在firefox下 getXMLNodes("http://www.mmocard.com/1111.xml","xml-body");
返回null
怎么写我忘了。很久不写javascript了
http://www.kelex.net.cn