0

我正在尝试使用 java 脚本解析 XML 文件。根据我阅读的教程,我发现要获取 Root 元素,我必须使用document.documentElement.

我使用该语法,但是当我尝试显示该语法的返回值时,浏览器显示[object HTMLHtmlElement].

我的问题是:(1)为什么我[object HTMLHtmlElement]会显示在网络浏览器中。(2) 根据下面发布的 XML-File,使用后我应该期望输出是什么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>
4

1 回答 1

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
  }
}
于 2013-07-24T09:07:33.583 回答