J'ai un problème en lisant XML à partir de jQuery. Je peux charger le XML, mais je ne peux pas lire ses balises, je voulais d'abord lire le "menuitem" puis lire ses attributs, mon code
$.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));
});
Et voici mon 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>
Est-ce que n'importe qui peut m'aider avec ceci, merci beaucoup!
Réponses:
0 pour la réponse № 1Le problème est qu’il n’y a pas d’élément appelé menuitem dans le xml que vous avez posté si vous changez votre code en:
$(data).find("mainitem")
Vous obtiendrez le premier élément, à savoir titre Courses et url ~ / courses
Par la suite, pour ce menu principal, je "pensais que vous souhaitiez également le recevoir" via:
$(data).find("mainitem").each(function () {
$(this).find("subitem").each(function() {
// Do some processing with subitem
});
// Do some processing with mainitem as well
});
Et puis les éléments de sous-éléments:
$(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
});
J'ai "créé ici un projet github avec une solution montrant cette technique: https://github.com/davethomas11/stackoverflow_Q_39502601
Exemple hébergé: https://www.daveanthonythomas.com/remote/so39502601/