2015-06-11 30 views
0

我想用ajaxAJAX錯誤當試圖讀取XML文件

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

    <user> 
    <u_idno>1</u_idno> 
    <u_name>nobody</u_name> 
    <u_srnm>nothing</u_srnm> 
    <u_role>linux</u_role> 
    </user> 

    <user> 
    <u_idno>2</u_idno> 
    <u_name>yesbody</u_name> 
    <u_srnm>something</u_srnm> 
    <u_role>administrator</u_role> 
    </user> 

檢索從XML文件中的一些數據,但我得到我不確定錯誤

Uncaught TypeError: Cannot read property 'getElementsByTagName' of null 

爲什麼會說空,我一直在瘋狂搜索,以找出我做錯了什麼,但我無能爲力。我的javascript是如下

function f_ajax() { 

    var lv_request; 

    try { 
     lv_request = new XMLHttpRequest(); 
    } catch (error) { 
     lv_request = new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    lv_request.onreadystatechange = function() { 

     if(lv_request.readyState == 4 && lv_request.status == 200) { 

      lv_xml = lv_request.responseXML; 
      lv_row = lv_xml.getElementsByTagName("user"); 
      lv_output = null; 

      for (lv_cnt = 0; lv_cnt < lv_row.length; lv_cnt++) { 

       lv_output = lv_output + lv_row[lv_cnt].childNodes[0].nodeValue; 

      } 

      document.getElementById("h2_ajax").innerHTML = lv_row; 

     } 

    } 

    lv_request.open("GET", "data.xml", true); 
    lv_request.send(); 

    }; 

    f_ajax(); 
+1

lv_request.responseText是什麼? – Barmar

+0

它輸出整個xml文件 – Trent

+0

如果您在'responseText'中看到的值不是完全有效的XML,則會在'responseXML'中看到NULL。 –

回答

1

您的XML格式不正確。它缺少一個根,還有一些其他問題。試試這個:

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <user> 
    <u_idno>1</u_idno> 
    <u_name>nobody</u_name> 
    <u_srnm>nothing</u_srnm> 
    <u_role>linux</u_role> 
</user> 
<user> 
    <u_idno>2</u_idno> 
    <u_name>yesbody</u_name> 
    <u_srnm>something</u_srnm> 
    <u_role>administrator</u_role> 
</user> 
</root> 
+0

那些不正確的結束標籤是我的問題中的一個錯字,但它是修復它的根標籤,我不知道我需要一個主父母,非常感謝 – Trent