document.documentElement函数未显示正确的结果

时间:2013-07-24 08:26:44

标签: javascript xml

我正在尝试使用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>

1 个答案:

答案 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
  }
}