Javascript AJAX 解析XML 兼容FIREFOX/IE

//导入js文件

function getResult(url, ready) {
 var xmlHttp;
 var r = function() {

  if (xmlHttp.readyState == 4) {
   if (xmlHttp.status == 200) {
    //alert(isIE);

    var xmlstr;
    var xmldoc;
    var isIE = !!(window.attachEvent && !window.opera);
    if (isIE)
     xmldoc = xmlHttp.responseXML;
    else {

     xmlstr = xmlHttp.responseText;
     alert(xmlstr);
     var parser = new DOMParser();

     xmldoc = parser.parseFromString(xmlstr, "text/xml");
    }
    try {
     ready(xmldoc);
    } catch (e) {
     alert(e.message);
    }
   }
  }
 }

 var create = function(url, r) {

  try {
   // Firefox, Opera 8.0+, Safari
   xmlHttp = new XMLHttpRequest();
  } catch (e) {

   // Internet Explorer
   try {
    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
   } catch (e) {

    try {
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (e) {
     alert("您的浏览器不支持AJAX!");
     return false;
    }
   }
  }
  xmlHttp.onreadystatechange = r;
  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);

 }
 create(url, r);

}

 
//应用
function  ready(xmlDoc)
    {
    
        
        x
= xmlDoc.getElementsByTagName( " a " )[ 1 ];
        y
= x.childNodes[ 0 ];
        txt
= y.nodeValue;
        alert(txt);
        
    }
getResult(
" ../xml.jsp " ,ready);

 

xml:

<r>
<a>ff</a>
<a>ggd</a>
</r>

childNodes 属性返回子节点的列表。<a> 元素只有一个子节点,即一个文本节点。

下面的代码检索 <a> 元素的文本节点:

x=xmlDoc.getElementsByTagName("a")[0];

y=x.childNodes[0];

nodeValue 属性返回文本节点的文本值:

x=xmlDoc.getElementsByTagName("title")[0];

y=x.childNodes[0];

txt=y.nodeValue;

结果:txt = "ggd"

你可能感兴趣的:(JavaScript)