2011-03-17 65 views
0

我想抓住此示例中的任何XML標記。但是,如果我嘗試抓取IE中第一條記錄中的數據以外的任何內容,我就無法做到這一點。我可以寫什麼樣的JavaScript來糾正?我想抓住外部XML數據並將其顯示在我的HTML頁面

<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
<title>Get Any XML Tag</title> 
<script type='text/javascript' src='http://imaginationeverywhere.info/jslib//dev/jquery-1.5.1.js'> 
</script> 
<script type="text/ecmascript"> 
    function getData() { 
     var XMLHTTPRequestObject = false; 

     if (window.XMLHTTPRequest) { 
      XMLHTTPRequestObject = new XMLHttpRequest(); 

     } else if (window.ActiveXObject) { 
      XMLHTTPRequestObject = new ActiveXObject('Microsoft.XMLHTTP'); 
     } 

     if (XMLHTTPRequestObject) { 
      XMLHTTPRequestObject.open('GET', 'http://imaginationeverywhere.info/xml/cd_catalog.xml', true); 

      XMLHTTPRequestObject.onreadystatechange = function() { 
       if (XMLHTTPRequestObject.readyState == 4 && XMLHTTPRequestObject.status == 200) { 
        var xmlDocument = XMLHTTPRequestObject.responseXML; 
        displayArtist(xmlDocument); 
       } 
      } 
      XMLHTTPRequestObject.send(null); 
     } 
    } 

    function displayArtist(xmldoc) { 
     titleName = xmldoc.getElementsByTagName('TITLE'); 
     artistName = xmldoc.getElementsByTagName('ARTIST'); 
     countryName = xmldoc.getElementsByTagName('COUNTRY'); 
     companyName = xmldoc.getElementsByTagName('COMPANY'); 
     priceName = xmldoc.getElementsByTagName('PRICE'); 
     yearName = xmldoc.getElementsByTagName('YEAR'); 

     displayTitle = "The name of this song title is " + titleName[0].firstChild.nodeValue + ".";  
     displayArtist = "The name of the artist is " + artistName[0].firstChild.nodeValue + "."; 
     displayCountry = "The name of the artist country is " + countryName[0].firstChild.nodeValue + "."; 
     displayCompany = "The name of the artist company is " + companyName[0].firstChild.nodeValue + "."; 
     displayPrice = "This song costs $" + priceName[0].firstChild.nodeValue + "."; 
     displayYear= "The year this song was released " + yearName[0].firstChild.nodeValue + "."; 

     var target = document.getElementById('targetDiv'); 
     target.innerHTML = displayTitle + "<br/>" + displayArtist + "<br/>" + displayCountry + "<br/>" + displayCompany + "<br/>" + displayPrice + "<br/>" + displayYear; 
    } 
</script> 
</head> 
<body> 
<h3>Get Tag Value</h3> 

<form action="#"> 
    <input type="button" value='Get the name of the artist' onclick="getData()" /> 
</form> 
<div id="targetDiv" style="width:300px; height:20px"> 

</div> 
</body> 
</html> 

回答

1

我建議使用jQuery - 它幾乎都是瀏覽器兼容的。

試試這個:

function getData() { 
    $.ajax({ 
     url: 'ajax/test.html', 
     dataType : 'xml', 
     success: function(data) { 
      displayArtist(data); 
    }); 
} 
+0

他確實有jQuery的包括在內。 – alex 2011-03-17 08:27:15

+0

我並不擔心跨瀏覽器兼容性,現在我只是試圖在IE中檢索數據。 – Amen 2011-03-17 08:37:42

+0

編輯我的答案。 – 2011-03-17 08:58:01

相關問題