responseXML返回null

时间:2015-04-10 18:20:15

标签: javascript xml

我试图在ajax调用中用javascript解析xml数据。但是responseXML返回null值。这是我的代码

<script language="javascript">
if(window.addEventListener)
{
    window.addEventListener("load",getXML,false);
}
else if(window.attachEvent)
{
    window.attachEvent("onload",getXML);
}
function getXML()
{
    var xhr = new XMLHttpRequest();
    xhr.open("GET","myxml.xml",true);
    xhr.onreadystatechange = function()
    {
        if(xhr.readyState == 4)
        {
            //alert("got response");
            var root = xhr.responseXML;
            alert(root);
        }
    }
    xhr.send(null);
}
</script>

这是我的“myxml.xml”文件

<?xml version="1.0" encoding="iso-8859-1"?>
<root>
    <child-1>
        <grandChild1_1>textOfGrandChild1_1</grandchild1_1>
        <grandChild2_1>textOfGrandChild2_1</grandchild2_1>
        <grandChild3_1>textOfGrandChild3_1</grandchild3_1>
    </child-1>
    <child-2>
        <grandChild1_2>textOfGrandChild1_2</grandchild1_2>
        <grandChild2_2>textOfGrandChild2_2</grandchild2_2>
        <grandChild3_2>textOfGrandChild3_2</grandchild3_2>
    </child-2>
    <child-3>
        <grandChild1_3>textOfGrandChild1_3</grandchild1_3>
        <grandChild2_3>textOfGrandChild2_3</grandchild2_3>
        <grandChild3_3>textOfGrandChild3_3</grandchild3_3>
    </child-3>
</root>

当我尝试

alert(xhr.responseText)

它显示了xml文件。但是当使用responseXML时它给出了null值。问题出在哪里?

2 个答案:

答案 0 :(得分:1)

您的XML不正确,因为它区分大小写,已更改grandchild1_1 to grandChild1_1并且有效。

<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<child-1>
    <grandChild1_1>textOfGrandChild1_1</grandChild1_1>
    <grandChild2_1>textOfGrandChild2_1</grandChild2_1>
    <grandChild3_1>textOfGrandChild3_1</grandChild3_1>
</child-1>
<child-2>
    <grandChild1_2>textOfGrandChild1_2</grandChild1_2>
    <grandChild2_2>textOfGrandChild2_2</grandChild2_2>
    <grandChild3_2>textOfGrandChild3_2</grandChild3_2>
</child-2>
<child-3>
    <grandChild1_3>textOfGrandChild1_3</grandChild1_3>
    <grandChild2_3>textOfGrandChild2_3</grandChild2_3>
    <grandChild3_3>textOfGrandChild3_3</grandChild3_3>
</child-3>

以下是Plunker

谢谢!

答案 1 :(得分:1)

您的XML无效,案例很重要

 <grandChild1_1>textOfGrandChild1_1</grandchild1_1>
       ^                                  ^

所有结束标记在名称中都有错误的驼峰大小写。