2013-10-28 66 views
0

我一直在爲許多教程,我似乎仍然無法得到這個權利。Xml和Javascript

我有下面的XML文檔

<?xml version="1.0" encoding="UTF-8"?> 

<bookstore> 

    <book category="COOKING"> 
    <title lang="en">Everyday Italian</title> 
    <author>Giada De Laurentiis</author> 
    <year>2005</year> 
    <price>30.00</price> 
    </book> 

    <book category="CHILDREN"> 
    <title lang="en">Harry Potter</title> 
    <author>J K. Rowling</author> 
    <year>2005</year> 
    <price>29.99</price> 
    </book> 

    <book category="WEB"> 
    <title lang="en">Learning XML</title> 
    <author>Erik T. Ray</author> 
    <year>2003</year> 
    <price>39.95</price> 
    </book> 

</bookstore> 

我也有如下因素的javascript在我的HTML

if (window.XMLHttpRequest) 
    { 
    xhttp=new XMLHttpRequest(); 
    } 
else // for IE 5/6 
    { 
    xhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xhttp.open("GET","book.xml",false); 
xhttp.send(); 
xmlDoc=xhttp.responseXML; 

alert(xmlDoc.getElementsByTagName("title").nodeValue); 

我希望能夠提醒特定標題(或所有標題如果可能的話) 。

這怎麼可能?

+0

如果您登錄'xmlDoc'到_console_您能得到什麼? –

+0

getElementsByTagName返回節點列表,不能在列表上使用nodeValue。 – epascarello

+0

正如epascarello所說,你必須遍歷由'getElementsByTagName'返回的_NodeList_來查看單個_Nodes_。 –

回答

1

所以,我怎麼能得到的只是第一個「稱號」,並提醒呢?

假設xmlDoc

var titles = xmlDoc.getElementsByTagName("title"); // NodeList 
if (titles[0])     // if there is an item in index 0 
    alert(titles[0].textContent); // alert it's textContent 
else        // otherwise 
    alert('Error: no titles'); // some error message 
+0

其提醒null – craig

+0

@craig對不起,假設_nodeValue_是您想要的屬性,請嘗試使用_textContent_來代替(編輯)。 –

+0

完美現在非常感謝 – craig