解析简单的XML - Javascript / Ajax

解析简单的XML  -  Javascript / Ajax

问题描述:

I want to dynamically change page content based on XML Ajax response. For testing I have created a static PHP generated XML file with only one tag. If the tag contains the string "yes" then it should display "AVAIL" otherwise display something else. The static value set for testing is "yes" but the script still displays "Not Avail".

What is the correct way to accomplish this?

I have some AJAX here..

xmlhttpp.onreadystatechange=function(){
if(xmlhttpp.readyState==4 && xmlhttpp.status==200){
    var response = xmlhttpp.responseXML;
    var avail = response.getElementsByTagName("avail")[0];
    if(avail.childNodes[0].nodeValue == "yes"){
        document.getElementById("dstat").innerHTML = "AVAIL";
    }else{
        document.getElementById("dstat").innerHTML = "NOT AVAIL '" + avail + "'";
    }


}

}

And the domain_checker.php file looks like this..

<?php
Header('Content-type: text/xml');
echo "<?xml version='1.0' encoding='UTF-8'?>
<domain>
  <avail>yes</avail>
</domain>";
?>

我想基于XML Ajax响应动态更改页面内容。 为了测试,我创建了一个静态PHP生成的XML文件,只有一个标记。 如果标签包含字符串“yes”,则它应显示“AVAIL”,否则显示其他内容。 为测试设置的静态值为“是”,但脚本仍然显示“Not Avail”。 p>

实现此目的的正确方法是什么? p>

我这里有一些AJAX .. p>

  xmlhttpp.onreadystatechange = function(){
if(xmlhttpp.readyState == 4&amp;&amp; xmlhttpp.status == 200)  {
 var response = xmlhttpp.responseXML; 
 var avail = response.getElementsByTagName(“avail”)[0]; 
 if(avail.childNodes [0] .nodeValue ==“yes”){
 document。  getElementById(“dstat”)。innerHTML =“AVAIL”; 
} else {
 document.getElementById(“dstat”)。innerHTML =“NOT AVAIL'”+ avail +“'”; 
} 
 
  
} 
  code>  pre> 
 
 

} p>

domain_checker.php code>文件如下所示。 p>

 &lt;?php 
Header('Content-type:text / xml'); 
echo“&lt;?xml version ='1.0'coding ='UTF-8  '?&gt; 
&lt; domain&gt; 
&lt; avail&gt;是&lt; / avail&gt; 
&lt; / domain&gt;“; 
?&gt; 
  code>  pre> 
  div>

avail is an xml node, what you want is the text inside the node to test against

    avail = response.getElementsByTagName("avail")[0];
    if(avail.childNodes[0].nodeValue == "yes"){
        document.getElementById("dstat").innerHTML = "AVAIL";
    }else{
        document.getElementById("dstat").innerHTML = "NOT AVAIL";
    }