2013-07-24 29 views
0

我想解析XML文件使用java脚本。根据我读的教程,我发现为了获得Root元素,我必须使用document.documentElementdocument.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

很简单,因为你得到一个对象(在本情况下,一个节点)。 – melancia

+0

您是否尝试过调试Javascript代码段并检查此对象属性? – melancia

+1

您正在将您的父页面(HTML)的documentElement提取到'rootElement'变量中。你能发布你如何获得XML文件的代码吗?您必须先获取XML文件。 – Harry

回答

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 
    } 
} 
+0

yes,我按照您的建议修改了我的代码,但它不起作用 –

+0

错误是什么?哪个浏览器和版本?你在像tomcat这样的服务器上运行代码吗?确保你是。 – Harry

+0

只是产生任何结果..我使用CHrome。 –