2012-08-23 121 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