2014-01-18 61 views
1

我一直在拼命地嘗試在學校項目的網頁上顯示一些XML數據。到目前爲止,我已經看到了幾個不同的例子,但我不確定我做錯了什麼。我是一個Javascript的相對新手,並且一直在掙扎。我想要做的是從XML文件中提取一些信息,然後將其顯示在HTML網頁上。我附上我的代碼。任何幫助將是美好的。嘗試使用jQuery Ajax解析XML文檔

<bbgame source="STAT CREW Basketball" version="4.15.03" generated="12/17/2013"> 
    <gametracker gameid="1288244"></gametracker> 
    <venue gameid="GAME11" 
      visid="MSU" visname="MISSOURI STATE" 
      homeid="LOU" homename="LOUISVILLE" 
      date="12/17/2013" location="KFC Yum! Center, Louisville, KY" 
      time="9:05PM" attend="21335" schednote="" start="" end="" duration="" 
      leaguegame="N" neutralgame="N" postseason="N"> 
    <officials text="Doug Sirmons, Rick Crawford, Tim Nestor"></officials> 
    <rules prds="2" minutes="20" minutesot="5" fouls="5" qh="H"></rules> 
    </venue> 
    </bbgame> 

    <!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
    <link rel="stylesheet" type="text/css" href="mainstyles.css"> 
<title>Louisville Cardinals Statistics</title> 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
</head> 

<body> 

<script> 
$(document).ready(function(){ // ready document to be loaded 
    $.ajax({ 
     type: "GET", 
     url: "lou.xml", 
     dataType: "xml", 
     success: function(xml_parse) { 
      // the return of a ajax trough a xml file, is a xml parsed object, using $, this will be a jquery xml object; 
      // find all 'gametracker' entryes; 
      // (each) iteration trough founded entryes; 
      $(xml_parse).find('gametracker').each(function(){ 
       // select a container were you want to put your data, them append data in it;; 
       $('.container').append($(this).attr('gameid')); 
      }); 
     } 
    }); 
}); 
</script> 
<div class='container'></div> 
</body> 
</html> 

我的代碼似乎應該正常工作。我在同一個文件夾中有index.html和xml文件。我也努力嘗試在實際的HTML文檔中顯示變量。我是否將這個document.write與一個div包圍在一起,以便在頁面周圍進行操作並對其進行設計?

編輯:謝謝你到目前爲止的幫助傢伙。我有幾個更快的問題,我不想再發表一篇文章。

  1. 我可以再次調用此函數parse_xml沒有在$是(文件)。就緒(函數(){?我還在學習的jQuery/Javascript和我不好意思地說,我有一個硬時間緊跟所有這些括號,我有很多東西需要我提取出一個相對較大且複雜的XML文件

  2. 有沒有辦法在表格中顯示某些數據?場地上的XML節點有我需要提取的幾條信息,如果我可以將它們加載到表格中,則比單獨存儲每個信息更方便?

再次感謝您的幫助。

+0

Console.log(XML);在您的parsexml函數中查看數據是否正確到達 –

+0

需要包含Console.log(XML)?那麼這只是爲了檢查XML數據是否存在?我將研究如何納入這一點。 –

回答

1

對於開始,您的src爲jquery錯誤,您忘記了http:關於url;

其次,用var聲明的變量只能在聲明的函數內部可用,用於創建全局變量時不需要調用它們; var;

你無法運行此直接在瀏覽器中,阿賈克斯將不起作用,因此,你可以使用本地主機的Apache運行它們...

<script> 
$(document).ready(function(){ // ready document to be loaded 
    $.ajax({ 
     type: "GET", 
     url: "lou.xml", 
     dataType: "xml", 
     success: function(xml) { 
      // the return of a ajax trough a xml file, is a xml parsed object, using $, this will be a jquery xml object; 
      // find all 'gametracker' entryes; 
      // (each) iteration trough founded entryes; 
      $(xml).find('gametracker').each(function(){ 
       // select a container were you want to put your data, them append data in it;; 
       $('.container').append($(this).attr('gameid')+' - '); 
      }); 
     } 
    }); 
}); 
</script> 

這個腳本會提上了entryes分度類「容器」,他們分離「 - 」

<div class='container'></div> 

我想你正在學習這個低谷最難的路......試着以這樣的:http://learn.jquery.com/javascript-101/

對不起英文:)快樂編碼

編輯:在控制檯視圖上試試Chrome的devtools(f12在windows或alt +命令+我在mac上)視圖你可以實時運行js代碼,如果你做了console.log(var)你的代碼,結果將顯示在這個devtools的控制檯上。

+0

非常感謝您的幫助。我已經將http添加到Google託管的jQuery的src中。我沒有意識到使用var只是該腳本中的局部變量。我正在努力獲得一個本地Apache服務器,我可以託管這些數據。你也是正確的,我正在努力學習這一點。沒有學習基礎知識,我總是喜歡鴿子。我正在評論你發給我的鏈接。非常感謝你的幫助。 –