2013-07-24 26 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。 –