2016-09-15 55 views
0

我有一個從jQuery讀取XML的問題。我可以加載XML,但我不能讀它的標籤,我想看過「菜單項」,然後再讀取它的屬性,我的代碼:使用jQuery讀取XML不起作用

$.ajax({ 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     cache: false, 
     url: baseUrl + "/sitefinity/services/tafesa/TAFEpagedata.svc/Mainmenu", 
     data: {}, 
     dataType: 'xml', 
     success: function (data, textStatus, jqXHR) { 

     console.log(data); 

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

         htmlString = htmlString + writeToplevelNav($(this).attr('title'), $(this).attr('url'),$(this)); 
      }); 

這是我的XML:

<GetMainNavResponse xmlns="http://tempuri.org/"> 
    <GetMainNavResult> 
     <mainMenu> 
      <mainitem title="Courses" url="~/courses"> 
       <subitem title="Primary Industries @amp; Science" url="~/courses/primary-ind-science"> 
        <item title="Agriculture" url="~/courses/primary-ind-science/agriculture"/> 
        <item title="Animal Care @amp; Veterinary Nursing" url="~/courses/primary-ind-science/animal-care-veterinary-nursing"/> 
        <item title="Aquaculture" url="~/courses/primary-ind-science/aquaculture"/> 
        <item title="Conservation @amp; Land Management" url="~/courses/primary-ind-science/conservation-land-management"/> 
        <item title="Horticulture" url="~/courses/primary-ind-science/horticulture"/> 
        <item title="Science" url="~/courses/primary-ind-science/laboratory-technology"/> 
       </subitem> 
      </mainitem> 
     </mainMenu> 
    </GetMainNavResult> 
</GetMainNavResponse> 

任何人都可以幫助我,非常感謝!

回答

0

問題是有沒有所謂的菜單項中,如果你改變你的代碼,您發佈的XML元素:

$(data).find('mainitem') 

你會得到的稱號課程和URL〜/課程的第一要素

隨後該MAINMENU mainitem我想你想爲它的子項,以及通過:

$(data).find('mainitem').each(function() { 
    $(this).find('subitem').each(function() { 
     // Do some processing with subitem 
    }); 

    // Do some processing with mainitem as well 
}); 

然後子項目的項目:

$(data).find('mainitem').each(function() { 
    $(this).find('subitem').each(function() { 

     $(this).find('item').each(function() { 
      // Process subitem's items 
     }); 

     // Do some processing with subitem as well 
    }); 

    // Do some processing with mainitem as well 
}); 

我已經創建了一個GitHub的項目在這裏與展示這一技術的解決方案: https://github.com/davethomas11/stackoverflow_Q_39502601

託管例如: https://www.daveanthonythomas.com/remote/so39502601/

+0

喜戴夫, 感謝您的快速解決方案。是的,我錯誤地提到了不同的名稱,這是不是問題,當我使用物理位置URL(例如「url:baseUrl +」)替換url:baseUrl +「/sitefinity/services/tafesa/TAFEpagedata.svc/Mainmenu」/ sitefinity/services/tafesa/menu.xml「,」它的工作原理。 我需要檢查這與我的後端開發。 欣賞你的答案,並且我的查詢是正確的! – NPN