2014-10-20 95 views
0

我正在嘗試使用XML文件,並使用HTML在我的網站上寫出信息。這對於一個學校項目來說,並且老師會特意告訴我們使用XML和HTML。我的HTML已經包含代碼,圖片,文本等,並且這個工作完美。所以我試圖把XML代碼放在一個標籤中,然後寫出來。 XML文件只是一張表格,裏面有一些關於我最喜歡的籃球球員的信息。用HTML編寫XML文件

我已經通過互聯網搜索了幾天,而我無法找到任何有關此主題的信息。我訪問了W3Schools網站,並嘗試使用那裏提供的信息。

問題是,當我使用他們在那裏完成的工作時,嘗試擴展它,並使其與我自己的標籤一起工作,它根本無法工作!例如,當我在XML文件中有兩個標籤,並試圖寫出來,它的工作原理。然後,我嘗試添加一個標籤,整個事情就會關閉。唯一出現的是一個黑色的小方塊。

這裏是我的XML代碼:

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


<basketballplayers> 
<player> 
    <name>Steve Nash</name> 
    <college>Santa Clara</college> 
    <team>La Lakers</team> 
</player> 
<player> 
    <name>Ricky Rubio</name> 
    <college>Did not attend</college> 
    <team>Minnesota Timberwolves</team> 
</player> 
<player> 
    <name>Michael Jordan</name> 
    <college>North Carolina</college> 
    <team>Chicago Bulls</team> 
</player> 
</basketballplayers> 

這裏是我的HTML代碼,只用XML的東西:

  <script> 
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp = new XMLHttpRequest(); 
} 
else {// code for IE6, IE5 
    xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); 
} 
xmlhttp.open("GET", "proving.xml", false); 
xmlhttp.send(); 
xmlDoc = xmlhttp.responseXML; 

document.write("<table border='1'>"); 

var x = xmlDoc.getElementsByTagName("player"); 

for (i = 0; i < x.length; i++) { 
    document.write("<tr><td>"); 
    document.write(x[i].getElementsByTagName("name")[0].childNodes[0].nodeValue); 
    document.write("</td><td>"); 
    document.write(x[i].getElementsByTagName("college")[0].childNodes[0].nodeValue); 
    document.write("</td></tr>"); 
    document.write(x[i].getElementsByTagName("team")[0].childNodes[0].nodeValue); 
    document.write("</td></tr>"); 
} 
document.write("</table>"); 
      </script> 

     </div> 
+1

不使用'document.write'。一旦頁面被加載,它會把所有東西都擦掉! – charlietfl 2014-10-20 17:53:52

+0

咦?不,它不會。無論如何...改變你的第一個'document.write(「」);'到'document.write(「​​」);' – rjdown 2014-10-20 17:57:31

+0

@rjdown它不會?然後解釋一下在這個演示中發生了什麼http://plnkr.co/edit/NNvJgW7uCXM7r1rksEXy?p=preview – charlietfl 2014-10-20 18:20:25

回答

0

利用jQuery的JS庫,

嘗試

$.get("proving.xml", null, null, "xml") 
.done(function (xml, textStatus, jqxhr) { 
    $("body").append("<table id=result border=1></table>"); 
    $(xml).find("player *").each(function (i, el) { 
     $("#result").append("<tr><td>" + el.textContent + "</td></tr>") 
    }) 
}) 

jsfiddle http://jsfiddle.net/guest271314/w6nx71pd/