我有一个这样的脚本:
var xml_http_request = new XMLHttpRequest();
xml_http_request.addEventListener('readystatechange', PageReady, false);
xml_http_request.overrideMimeType("text/xml");
xml_http_request.open('GET', "index.xml", true);
xml_http_request.send(null);
function PageReady()
{
if(this.readyState != 4)
return;
var Doc = this.responseXML;
alert(Doc.getElementById("page1"));
}
和index.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<page id="page1">
<layer id="layer1">
<hook to="page1" edge="top" distance="10px" />
<hook to="page1" edge="left" distance="10px" />
<hook to="page1" edge="right" distance="10px" />
<hook to="page1" edge="bottom" distance="10px" />
</layer>
</page>
我看到的提醒中包含以下消息:null
不正确,因为该文档的元素为id
page1
。
查看Google Chrome的检查器,Doc
只有一个属性id
设置为page1
的子项。
为什么它不起作用?
答案 0 :(得分:1)
这是因为getElementById通常只适用于html / xhtml。您可以通过修改数据以使其为xhtml格式而不是纯XML来解决此问题,或者可以尝试将一些XML DTD添加到您的文件中,以便getElementById 应该工作。
类似的东西:
<!ELEMENT page>
<!ATTLIST page id ID>
查看here了解详情。