【问题标题】:Parsing simple XML - Javascript/Ajax解析简单的 XML - Javascript/Ajax
【发布时间】:2013-07-07 23:25:40
【问题描述】:

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

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

我这里有一些 AJAX..

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 + "'";
    }


}

}

domain_checker.php 文件看起来像这样..

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

【问题讨论】:

  • 你的 php 是否返回了正确的结果?

标签: php javascript xml ajax getelementsbytagname


【解决方案1】:

avail 是一个 xml 节点,你想要的是节点内的文本来测试

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

【讨论】:

  • 这对我不起作用。现在我的代码根本没有做任何事情,它以某种方式被破坏了。我更新了问题的 javascript 部分。
  • 我的客户还没有决定托管,所以我暂时使用 000webhost 进行实时开发。该主机自动在所有破坏我的 XML 的页面上包含 javascript。
猜你喜欢
  • 1970-01-01
  • 2010-10-07
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
相关资源
最近更新 更多