serialisation XML (javascript)

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

serialisation XML (javascript)

Message par arno. »

Bonjour,
je voudrais creer un bout de XML, par exemple :

Code : Tout sélectionner

<fruit couleur="verte">pomme</fruit>
c'est pour l'envoyer ensuite via XMLHttpRequest.

Bon, depuis ff1.5, il y a e4x, mais en attendant, j'aimerais bien garder la compatibilte ff1.0.x
Du coup, je pense faire un truc du style :

Code : Tout sélectionner

var string = '<fruit couleur="verte">pomme</fruit>';
, mais ca risque de pas etre pratique, ni tres lisible si il y en a beaucoup et que je dois creer la chaine dans une boucle en fonction des differentes variables.
j'aimerais bien faire un truc du style :

Code : Tout sélectionner

var el = document.createElement("fruit");
el.setAttribute("couleur", "jaune");
text = document.createTextNode("pomme");
el.appendChild(text);
, et ensuite, tout convertir en chaine de caractere, mais je n'ai pas trouve le moyen de le faire. peut-etre que j'ai loupe une fonction qui permettrait ca.

est-ce que qqun sait si c'est possible ?

merci d'avance.
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Message par martin »

En fait tu voudrais la propriété non standard innerHTML :) . Elle est implémentée sous firefox pour le html, mais je crois qu'elle n'y est pas encore pour du xhtml (et je crois avoir lu que c'est prévu pour les prochaines versions). Dans ce cas il faut la recréer soi même :
http://www.webfx.nu/dhtml/mozInnerHTML/ ... rHtml.html

pense aussi à encoder la chaine avant de l'envoyer.
Bobe
Iguane
Messages : 742
Inscription : 28 juil. 2003, 21:29

Message par Bobe »

Sinon, tu as l’interface XMLSerializer() :

Code : Tout sélectionner

var serializer = new XMLSerializer();
var str = serializer.serializeToString(el);
http://xulplanet.com/references/objref/ ... lizer.html (non standard)

Équivalent standard (DOM3 Load & Save du W3C):

Code : Tout sélectionner

var serializer = document.implementation.createLSSerializer();
var str = serializer.writeToString(el);
Récent (2004) et non implémenté, sauf peut-être par Opera.
« La vie d’un geek est un combat perpétuel contre l’imperfection »
Invité

Message par Invité »

merci a tous les deux.
C'est XMLSerializer qui correspond le mieux a ce que je veux faire.
Par contre, dans mon cas (composant javascript d'une extension firefox), on n'a pas acces a cette interface (car pas ds le chrome).
Comme ca a l'air trop complique de reimplemanter ca avec les composants javascript, je pense utiliser la methode barbare en mettant tout dans des chaines.
arno.
Varan
Messages : 1347
Inscription : 19 août 2004, 12:26

Message par arno. »

oubli de pseudo
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité