Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2790 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] deserialiser du XML....aide sur un script existant :)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[JS] deserialiser du XML....aide sur un script existant :)

n°1343370
ham_mer
Posté le 10-04-2006 à 17:34:06  profilanswer
 

Salut,
Voila je voudrais savoir si vous connaissiez des scripts pour faire de la sérialisation/déserialisation de XML en objets JS, car j'ai trouvé des scripts mais ça ne marche pas vraiment et entre les versions FireFox et IE c'est le gros calvaire  :cry:  
J'ai essayé de tester celui si mais pas moyen de le faire marcher à partir d'un fichier XML.... -> http://www.dotnetjunkies.com/WebLo [...] 21962.aspx
 
Par exemple, à partir d'une description XML :
 
<window height="300" width="200" x="50" y="200">
     <label color="black">toto</label>
     <input type="text"></input>
     <button size="3" caption="OK"></button>
</window>
 
le script crée un objet window en JS avec tous les attributs et les objets que cette window contient.
 
Si quelqu'un a quoi que se soit a proposer je le remercie d'avance.


Message édité par ham_mer le 12-04-2006 à 11:11:08
mood
Publicité
Posté le 10-04-2006 à 17:34:06  profilanswer
 

n°1343392
anapajari
s/travail/glanding on hfr/gs;
Posté le 10-04-2006 à 17:47:11  profilanswer
 

Pour serializer il existe des trucs "tout fait" pour chacun des navigateurs:

  • sous IE tu as la propriété xml de chaque noeud, ça marche très bien
Code :
  1. xml.node


  • sous FF tu as XMLSerializer, que tu utilises ainsi
Code :
  1. new XMLSerializer().serializeToString(node);


  • Pour les autres navs, il faut que tu te fasses ta propre fonction ( c'est pas si dur, si tu galères trop je te montrerais)


Une fois que tu as tout ça tu peux faire:

Code :
  1. function serialize(node,level) {
  2.     if (node == null || typeof node != 'object') {return node};
  3.     if (window.ActiveXObject) {
  4.         //pour IE
  5.         return node.xml;
  6.     }else if (window.XMLSerializer) {
  7.         //pour FF
  8.         return new XMLSerializer().serializeToString(node);
  9.     }else {
  10.         //pour les autres
  11.         return TaFonctionManuelle(node);
  12.     }
  13. }


 
Pour désérializer c'est un peu la même histoire:

  • sous IE
Code :
  1. var docXML = new ActiveXObject("Microsoft.XMLDOM" );
  2. docXML.loadXML(xmlString);


  • sous FF

var  docXML = (new DOMParser()).parseFromString(xmlString,"text/xml" );[/code]

  • pour les autres, tu l'as dans le ...


Message édité par anapajari le 10-04-2006 à 17:47:48
n°1343852
ham_mer
Posté le 11-04-2006 à 10:26:40  profilanswer
 

Merci bien meme si j'avais deja trouvé tout ça !
Par contre new XMLSerializer().serializeToString(node) crée bien un objet de type String en JS à partir du noeud XML ?

n°1343860
anapajari
s/travail/glanding on hfr/gs;
Posté le 11-04-2006 à 10:33:56  profilanswer
 

ham_mer a écrit :

Merci bien meme si j'avais deja trouvé tout ça !
Par contre new XMLSerializer().serializeToString(node) crée bien un objet de type String en JS à partir du noeud XML ?


Bin si tu as déjà trouvé tu as du déjà essayé et donc savoir :o
Sin ty as typeof pour connaitre le type d'une variable en javascript

n°1343914
ham_mer
Posté le 11-04-2006 à 11:22:07  profilanswer
 

Oui merci typeOf me servira pour passer du JS au XML.

n°1344839
ham_mer
Posté le 12-04-2006 à 11:09:07  profilanswer
 

Je voulais savoir si quelqu'un avait deja réussit à faire marcher ce script de serialisation  
 
http://www.dotnetjunkies.com/WebLo [...] 21962.aspx
 
Parce que j'essaye désepérement d'en faire quelque pour déserialiser un fichier xml chose mais pas moyen...
 
 
a la fin de la page ils parlent de déserialisation avec ce code :
 

Code :
  1. var mySerializer=new XmlSerializer();
  2.  var myCustomerInfo=mySerializer.deserialize(Mydocument,MySchema);
  3.  alert(myCustomerInfo.Name);


 
Du coup je me suis dit que j'allais essayer chez moi  :D  
 
J'ai codé ceci :(les fichiers xml et DTT sont ceux pris en exemple sur le site)
 

Code :
  1. var req = null;
  2.                 //POur le fichier MyDocument, le fichier de données XML
  3.  if(window.XMLHttpRequest) // Firefox
  4.  {
  5.      req = new XMLHttpRequest();
  6.      req.open("GET", "custo.xml", false);
  7.   req.send(null);
  8.   //on crée un serializer XML
  9.   var serializer = new XMLSerializer();
  10.   alert(serializer.serializeToString(req.responseXML));
  11.   //on créer l'objet myDocument
  12.   var objDOMParser = new DOMParser();
  13.      Mydocument = objDOMParser.parseFromString(req.responseText, "text/xml" );
  14.  }
  15.  else if(window.ActiveXObject) // Internet Explorer
  16.  {
  17.      req = new ActiveXObject("Microsoft.XMLHTTP" );
  18.   Mydocument = new ActiveXObject("Msxml2.DOMDocument.3.0" );
  19.   Mydocument.loadXML(req.responseXML);
  20.   alert(Mydocument.loadXML(req.responseXML));
  21.  }
  22.  var req1 = null;
  23.                //Pour le fichier DTD
  24.  if(window.XMLHttpRequest) // Firefox
  25.     req1 = new XMLHttpRequest();
  26.  else if(window.ActiveXObject) // Internet Explorer
  27.     req1 = new ActiveXObject("Microsoft.XMLHTTP" );
  28.   
  29.  req1.open("GET", "schema.dtd", false);
  30.  req1.send(null);
  31.  alert(req1.responseText);
  32.  //on créer l'objet myDocument
  33.  var objDOMParser1 = new DOMParser();
  34.  MySchema = objDOMParser1.parseFromString(req1.responseText, "text/xml" );
  35.  var mySerializer=new XmlSerializer();
  36.  var myCustomerInfo=mySerializer.deserialize(Mydocument,MySchema);
  37.  alert(myCustomerInfo.Name);


 
Donc j'arrive a récupérer les données dans les fichiers mais la fonction de deserialisation ne marche pas...
Je me suis peut etre totalement gouré dans le code car ce n'est peut etre pas du tout les bon paramètres que je passe la la fonction ???


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [JS] deserialiser du XML....aide sur un script existant :)

 

Sujets relatifs
Un seul jeu de script pour plusieurs sitesscript méteo problème à l'execution
[XML & PHP] Architecture avec cache[résolu][C]Aide programmation somme de série numérique.
Petite aide, traduction vbs -JS : besoin de quelques lignes de codes !Aide demandée pour flag
[réglé] Aide sur un petit script.script pour afficher les dossier d'un répertoire en php
un petit script a essayer 
Plus de sujets relatifs à : [JS] deserialiser du XML....aide sur un script existant :)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR