Est-il possible d'ajouter,de supprimer des nœuds xml avec jquery $.ajax?
Je veux supprimer certains nœuds ou d'ajouter des nœuds xml avec jquery,
Je l'ai essayer avec append
, empty
, remove
mais toutes semblent ne pas fonctionner,
comme (en $.ajax):
success:function(xml){
$(xml).find("layout").append('<app id="' + $children.eq(i).attr("id") + '"></app>');
$(xml).find("layout").empty();
}
aussi je trouve qu'il y a pas de tutoriel sur google.
Alors je me demande est-il possible d'ajouter ou de supprimer des nœuds dans un document xml avec jquery?
OK ,je l'écris dans les détails,le fichier xml, il suffit d'enregistrer dans les locaux de domaine comme Database/UserConfig/config.xml
voici mon code Ajax:
function layout_change()
{
var $children=$input.children();
$.ajax({
type: "get",
url: "Database/UserConfig/config.xml",
dataType: "xml",
timeout: 2000,
beforesend:function(xml){
$(xml).find("layout").empty();
},
success:function(xml){
for(var i=0;i<$children.length;i++)
{
$(xml).find("layout").append('<app id="' + $children.eq(i).attr("id") + '"></app>');
}
},
error:function(){}
});
}
ou il peut être fait avec du javascript?ou peut être fait uniquement avec le serveur des langages comme le C#?......
ici est mon démo xml:
<layout>
<app id="id-4"></app>
<app id="id-5"></app>
<app id="id-6"></app>
<app id="id-1"></app>
<app id="id-2"></app>
<app id="id-3"></app>
</layout>
si vous pouvez faire quelque chose avec javascript ,il y a de fortes chances que cela peut être fait avec jquery...
Mais vous ne devriez pas écrire ou mettre à jour des fichiers xml , des fichiers texte à partir de javascript , qui n'est pas la bonne approche , javascript est principalement pour manipuler le DOM , extraire les données et le spectacle...,à envoyer des données.
pouvons-nous voir votre fichier xml?
pensez-vous que c'est une bonne approche de mise à jour xml , s'il veut, il doit utiliser les données de propriété et l'utilisation de jquery méta-données plugin
Ce n'est pas vrai. jQuery est un excellent outil pour l'analyse de XML.
Mais vous ne devriez pas écrire ou mettre à jour des fichiers xml , des fichiers texte à partir de javascript , qui n'est pas la bonne approche , javascript est principalement pour manipuler le DOM , extraire les données et le spectacle...,à envoyer des données.
pouvons-nous voir votre fichier xml?
pensez-vous que c'est une bonne approche de mise à jour xml , s'il veut, il doit utiliser les données de propriété et l'utilisation de jquery méta-données plugin
Ce n'est pas vrai. jQuery est un excellent outil pour l'analyse de XML.
OriginalL'auteur hh54188 | 2010-11-24
Vous devez vous connecter pour publier un commentaire.
jQuery est un outil fantastique pour l'analyse et la manipulation de XML en javascript. jQuery ajax Api ont été, en fait, construit avec cela à l'esprit, qui est pourquoi vous êtes en mesure de préciser le type de réponse à un appel ajax en définissant la
dataType
argumentxml
(même si elles ne essayer de faire un peu d'auto-détection si cet argument est omis). À partir du jQuery$.ajax()
de la documentation pour ladataType
argument:Vous pouvez analyser et manipuler XML autant que souhaitez à l'aide de jQuery. Je vais devoir ajouter que l'utilisation de sélecteurs CSS est merveilleux par rapport à des requêtes XPath dans server-side XML bibliothèques.
Tout
empty
etremove
fonctionne comme prévu, il y a un piège lors de l'ajout de nœuds à la volée avec des fonctions commeappend
: jQuery, pour quelque raison que ce soit (je n'ai pas vraiment creusé dans le présent), ne va pas créer l'élément pour vous lors de l'ajout de la structure XML (bien que cela fonctionne bien dans des structures HTML). Vous pouvez contourner ce problème facilement en créant explicitement le nœud de vous-même comme un élément du DOM ou un objet jQuery, puis en appelantappend
:Qu'il semble, cependant, qu'il y a d'autres problèmes avec votre code pour l'empêcher de se comporter comme prévu. Le
$.ajax
beforeSend
de rappel, par exemple, passe dans l'XMLHttpRequest
objet à la fonction de rappel et pas votre XML de l'objet à manipuler. Le résultat est que votreempty
appel dans ce rappel ne fait rien.Aussi, si vous êtes en essayant de manipuler la réponse de
Database/UserConfig/config.xml
dans lebeforeSend
de rappel, il ne sera probablement pas avoir existé et pourtant, depuisbeforeSend
est appelée avant que la requête ajax est tiré. Il est possible que lexml
argument que vous avez voulu passer a été étendue à l'échelle mondiale, mais c'est écrasé dans le champ d'application de la fonction de rappel depuis jQuery est en passantXMLHttpRequest
comme je l'ai mentionné avant.OriginalL'auteur andrewle