2012-08-23 84 views
2

我正在使用下面的代碼來讀取位於本地的一個xml文件。但它沒有顯示xmldoc的對象。我的代碼是使用javascript讀取xml文件

function loadXMLDoc(XMLname) 
{ 
    var xmlDoc; 
    if (window.XMLHttpRequest) 
    { 
    xmlDoc=new window.XMLHttpRequest(); 
    xmlDoc.open("GET",XMLname,false); 
    xmlDoc.send(""); 
    return xmlDoc.responseXML; 
    } 

    else if (ActiveXObject("Microsoft.XMLDOM")) 
    { 
    xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); 
    xmlDoc.async=false; 
    xmlDoc.load(XMLname); 
    return xmlDoc; 
    } 
    alert("Error loading document!"); 
    return null; 
    } 



    function f1() 
    { 
    var xmlDoc=loadXMLDoc(「test.xml」) 
    var M = xmlDoc.getElementsByTagName(「article」); 
    alert(M); 
    } 

它不顯示警報,如果我調用該函數f1.Thanks提前

+2

AJAX是異步的。等待xmlDoc加載,然後解析其響應數據。 –

+0

抱歉,我無法獲得u.I必須爲此下載其他文件?等待xmlDoc加載是什麼意思。請幫助 –

+0

這是AJAX的基礎知識之一。我會建議你找到一個AJAX教程;它會解釋得比我更好。 –

回答

9

更好的使用jQuery功能。它爲我工作很好。

<script src="jquery.js" type="text/javascript"></script> 
<script> 
$(document).ready(function(){ 
$.ajax({ 
    type: "GET", 
    url: "read2.xml", 
    dataType: "xml", 
    success: function(xml) { 
     $(xml).find('site').each(function(){ 

      var id = $(this).attr('id'); 
      var title = $(this).find('title').text(); 
      var url = $(this).find('url').text(); 
      $(this).find('desc').each(function() 
      { 
       var brief = $(this).find('brief').text(); 
       var long = $(this).find('long').text(); 
       alert("my "+brief); 
       alert("my "+long); 

      }); 
     }); 
    } 
}); 
}); 

和XML文件格式將成爲

我TITLE1 爲url1

BRF 1 長1

BRF 2 長2