无法从ajax中的xml响应中检索节点值

时间:2012-12-06 19:35:51

标签: php xml ajax request

兄弟!! :)我是ajax的初学者,我在从响应XML中检索注释值时遇到问题。我想做的是(简单的我认为):使用ajax我向PHP页面请求XML文件。我得到了XML,但我无法获得笔记值。

我简单的XML:

<items>
  <item>
    <name>..</name>
    <address>..</address>
    <owner>..</owner>
  </item>
</items>

我的PHP(响应):

<?php
    header('Content-Type: text/xml');
    $doc = new DOMDocument();
    $doc->formatOutput=true;
    $doc->load('data.xml');
    echo $doc->saveXML();
?>

我的请求功能:

  function getUserParameters(){
  var xmlhttp = new XMLHttpRequest();
  xmlhttp.onreadystatechange=function Return(){
        if (xmlhttp.readyState==4 && xmlhttp.status==200){
            var result = xmlhttp.responseXML;
            var name= result.getElementsByTagName("name");
            var val = name[0].childNodes[0].nodeValue;
            alert(val);
        }
  }
xmlhttp.open("GET","request.php",true);
xmlhttp.send();
}

一切正常,但当我尝试警告(val)时,字符串为空。没有出现!谁能告诉我,我做错了什么? 非常适合你的时间。

1 个答案:

答案 0 :(得分:0)

首先尝试直接调用PHP响应页面,您应该看到XML内容。如果没有,请将XML文件的完整路径(而不是URL)替换为data.xml。

这不是理想的做法。您最好使用PHP响应页面来解析您需要将其放入JSON的数据,然后使用Ajax来检索值。有关详情,请参阅此页:http://api.jquery.com/jQuery.getJSON/