2012-10-23 227 views
1

我想從我的XML表中拉出數據,這是我第一次完成這個fyi。問題解析jquery XML

這是我的jQuery。

$(document).ready(function(){ 
     $.ajax({ 
      type: "GET", 
      url: "desk.xml", 
      dataType: "xml", 
      success: function(xml) { 
       $(xml).find('desk').each(function(){ 
        var id = $(this).attr('id'); 
        var desknum = $(this).find('desk#').text(); 
        var phonenum = $(this).find('phone#').text(); 
        var emailinfo = $(this).find('email').text(); 
        $('<div class="desks" id="desk_'+id+'"></div>').html().appendTo('#page-wrap'); 
         $('<div class="desknum"></div>').html(desknum).appendTo('#desk_'+id); 
         $('<div class="phonenum"></div>').html(phonenum).appendTo('#desk_'+id); 
         $('<div class="emailinfo"></div>').html(emailinfo).appendTo('#desk_'+id); 
       }); 
      } 
     }); 
    }); 

這裏是我的XML

<?xml version="1.0" encoding="iso-8859-1"?> 
<location> 
    <desk id="1"> 
     <desk#>Camaron</desk#> 
    <computer#>COR9838L</computer#> 
<phone#>111.111.1111</phone#> 
<email#>[email protected]</email#> 
<picture></picture> 
    </desk> 
    <desk id="2"> 
    <desk#>Greg</desk#> 
<computer#>COR9838L</computer#> 
<phone#>111.111.1111</phone#> 
<email>[email protected]</email> 
<picture></picture> 
    </desk> 
    <desk id="3"> 
<desk#>Cesar</desk#> 
<computer#>COR9838L</computer#> 
<phone#>111.111.1111</phone#> 
<email#>[email protected]</email#> 
<picture></picture> 
    </desk> 
    <desk id="4"> 
    <desk#>Tracy</desk#> 
<computer#>COR9838L</computer#> 
<phone#>111.111.1111</phone#> 
<email#>[email protected]</email#> 
<picture></picture> 
    </desk> 
</location> 

我也安裝在這裏http://jsfiddle.net/cornelas/Re6Nv/

不知道一個的jsfiddle爲什麼它不工作。

另外我想要而不是創建一個div ID,我想我的XML數據加載到正確的div ID。爲了讓您瞭解我的計劃是什麼,我正在構建基於位置的格式,每個桌面在地圖上都有一個ID,xml應該指向地圖上的位置並正確放置數據。這是一個大項目,所以任何幫助你可以提供非常感謝。

+0

不能正常工作,因爲http://www.designsbycamaron.net/desk.xml發送500內部服務器錯誤。 – manuerumx

回答

1

您的desk.xml返回500內部服務器錯誤,我建議您在訪問XML文件時使用此代碼。

$.get('http://www.designsbycamaron.net/desk.xml', function(data){ 

    $(data).find('desk').each(function(){ 

     var $desk = $(this); 
     var id = $desk.attr("id"); 
     var desknum = $desk.find('desk#').text(); 
     var phonenum = $desk.find('phone#').text(); 
     var emailinfo = $desk.find('email').text(); 

     var html = '<div class="desks" id="desk_' + id + '">'; 
     html += '<div class="desknum">' + desknum + '</div>'; 
     html += '<div class="phonenum">' + phonenum + '</div>'; 
     html += '<div class="emailinfo">' + emailinfo + '</div></div>'; 

     $('#page-wrap').append($(html)); 

    }); 

});​ 

http://jsfiddle.net/Re6Nv/6/

+0

偉大的工作。所以我最後的問題是,我現在如何將內容加載到特定的div中。讓我給你一些進一步的信息。看看我有多桌面id =我想要把數據放在HTML頁面上的id。所以在我的html頁面上,它會說div id =「1」,那麼所有這些內容將被裝入div id =「1」的div容器中,稱爲info,然後所有內容都被加載到div容器中,而不是#page-wrap – Cam

+0

沒關係我知道了!! $('#page-wrap #desk _'+ id +'.content')。append($(html)); – Cam