try{
xmlObj=new ActiveXObject(activeName[i]);
break;
}catch(e){
}
}
//对象创建成功
if(xmlObj){
//以同步方式装载XML文档
xmlObj.async=false;
//装载xml文档
if(flag){
xmlObj.load(xmlDoc);
}else{//装载xml字符串
xmlObj.loadXML(xmlDoc);
}
//返回根节点对象
//return xmlObj;
//返回根元素对象
return xmlObj.documentElement;
}else{//对象创建失败
alert("XMLDocumnet对象创建失败");
return null;
}
//FireFox浏览器的装载方法
}else if(document.implementation.createDocument){
var xmlObj;
if(flag){//装载xml文档
xmlObj=document.implementation.createDocument("","",null);
if(xmlObj){
xmlObj.async=false;
xmlObj.load(xmlDoc);
return xmlObj
//return xmlObj.documentElement;
}else{
alert("创建对象失败");
return null;
}
}else{//装载xml字符串
xmlObj=new DOMParser();
var docRoot=xmlObj.parseFromString(xmlDoc,'text/xml');
return docRoot.documentElement;
}
}else{
alert("XMLDocumnet对象创建失败");
return null;
}
}
2、XML文档装载完成之后,剩下的就是如何利用XPATH技术获取XML中的内容了,在这里通常会用到两个方法:selectNodes()和selectSingleNode()
2.1 selectSingleNode()方法
[javascript]
function selectSingleNode(xmlDom,sXpath){
if(window.ActiveXObject){//IE浏览器
return xmlDom.selectSingleNode(sXpath);
}else if(window.XPathEvaluator){//firefox类浏览器
var xpathObj=new XPathEvaluator();
if(xpathObj){
var result=xpathObj.evaluate(sXpath,xmlDom,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null);
return result.singleNodeValue;
}else{
return null;
}
}else{
return null;
}
}
2.2 selectNodes()方法
[javascript]
function selectNodes(xmlDom,sXpath){
if(window.ActiveXObject){//IE浏览器
return xmlDom.selectNodes(sXpath);
}else if(window.XPathEvaluator){//firefox类浏览器
var xpathObj=new XPathEvaluator();
if(xpathObj){
var result=xpathObj.evaluate(sXpath,xmlDom,null,XPathResult.ORDERED_NODE_ITERATOR_TYPE,null);
var nodes=new Array();
var node;
while((node=result.iterateNext())!=null){
nodes.push(node);
}
return nodes;
}else{
return null;
}
}else{
return null;
}
}