我正在尝试解析使用php创建的xml文件,如下所示。但是当我尝试使用reponseXML.documentElement解析它的数据时,我在控制台中收到此错误" Uncaught TypeError:无法读取属性' documentElement' of null"这是我的代码。
my javascript code is
function getData()
{
var xhr = new XMLHttpRequest();
xhr.open("GET","data.php",true);
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
//alert("got response");
//alert(xhr.responseText);
var root = xhr.responseXML.documentElement;
var children = root.childNodes;
//alert(children.length);
for(var i=0;i<children.length;i++)
{
if(children[i].nodeType == 1)
{
var grandChildren = children[i].childNodes;
for(var j=0;j<grandChildren.length;j++)
{
if(grandChildren[j].nodeType == 1)
{
//alert(grandChildren[j].nodeName);
}
}
}
}
}
}
xhr.send(null);
}
my xml file is
<?php
header("Content-Type: text/xml");
echo '<?xml version="1.0" charset="UTF-8"?>';
$aboutMe = "nothing";
$aboutMyFamily = "the best";
$myStreangths = "trying";
$myWeaknesses = "so many";
$personsILike = "SREAA RAAM,SWAAMEE VIVEKAANAMDHA,maamayya";
$thingsILikeInOthers = "honesty,realization";
$thingsIDoNotLikeInOthers = "jealousy,ego";
$myFriends = "bujji";
echo '<data>';
echo '<profle>';
echo "<about>";
echo "'<aboutMe>'.$aboutMe.'</aboutMe>'";
echo "'<aboutMyFamily>'.$aboutMyFamily.'<aboutMyFamily/>'";
echo "'<myStrengths>'.$myStreangths.'</myStrengths>'";
echo "'<myWeaknesses>'.$myWeaknesses.'</myWeaknesses>'";
echo "'<personsILike>'.$personsILike.'</personsILike>'";
echo "'<thingsiLikeInOthers>'.$thingsILikeInOthers.'</thingsiLikeInOthers>'";
echo "'<thingsIDoNotLikeInOthers>'.$thingsIDoNotLikeInOthers.'</thingsIDoNotLikeInOthers>'";
echo "'<myFriends>'.$myFriends.'</myFriends>'";
echo '</about>';
echo "</profile>";
echo "</data>";
?>
问题出在哪里???
答案 0 :(得分:0)
完全没有问题。 null
是xhr.resppmseXML
的文档和正确值。当 resppmseXML 字段为NULL时, XMLHttpRequest 中有完整的规则集,因此我建议您选择自己选择的javascript参考,以使自己更舒服那个。
但是我可以给出一个提示:这可能是NULL,因为您创建的XML只是无效。当我查看您的PHP代码时,我可以看到您通过#34; hand&#34;来创建XML,即通过连接字符串。这通常是创建non-wellformed XML的原因。
您需要(应该)在之前验证您创建的XML ,并将其发送给浏览器,以确保您在创建XML时没有犯任何错误。我强烈建议使用XML库来创建XML而不是手动创建它。我建议例如在之前的答案中我已经给出了 - 但我现在没有找到它们,所以我引导你去参考一个更广泛的参考问题,但应该给你一些指示: How to generate XML file dynamically using PHP? - 但最后您可以选择创建(和/或验证)XML的XML库。