我正在尝试使用java脚本解析XML文件。根据我阅读的教程,我发现要获得Root元素,我必须使用document.documentElement
。
我使用该语法,但当我尝试显示该语法的返回值时,浏览器会显示[object HTMLHtmlElement]
。
我的问题是:(1)为什么我在网络浏览器中显示[object HTMLHtmlElement]
。
(2)根据下面发布的XML文件,我应该期望输出是什么
使用rootElement = document.documentElement;
请在下面找到我使用的代码(Javascript)和XML文件。
的Javascript
function findWriter()
{
var schriftstellerKnoten, SpracheKnoten;
var FuellerKnoten, DichtungKnoten, Anzeige, rootElement;
rootElement = document.documentElement;
document.write(rootElement);
}
XML文件:
<?xml version="1.0" ?>
<Schriftsteller>
<Englischsprache>
<Dichtung>
<fueller>
<name>Jane Austin</name>
<name>Rex Stout</name>
<name>Dashiell Hammett</name>
</fueller>
</Dichtung>
</Englischsprache>
</Schriftsteller>
答案 0 :(得分:2)
document.documentElement
会为您提供您的javascript所在页面的根HTML标记。
要获取并显示XML内容,您必须能够访问XML文档,然后使用它来加载XML文件,如下所示:
function findWriter()
{
var schriftstellerKnoten, SpracheKnoten;
var FuellerKnoten, DichtungKnoten, Anzeige, rootElement;
if (window.XMLHttpRequest){
xhttp=new XMLHttpRequest(); //For non IE browsers
}
else { // for IE 5/6
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET","test.xml",false);
xhttp.send();
xmlDoc=xhttp.responseXML; //Fetch the XML file contents
var nameEl = xmlDoc.documentElement.getElementsByTagName("name"); //Get all <name> tags in it
for (i=0; i<nameEl.length; i++){
document.write("Name" + i + ": " + nameEl[i].firstChild.nodeValue + "<br/>"); //write names
}
}