IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

caractères autorisés dans un XML?


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Mr Pink Eyes
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 119
    Points
    119
    Par défaut caractères autorisés dans un XML?
    Bonjour,

    Je génère une suite de bytes aléatoirement en javascript/XPCOM via l'interface nsIRandomGenerator. A partir de ces bytes, je récupère leur valeur ASCII pour en faire une clé que je stocke dans un format XML (une chaine que je passe au DOMParser).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    var randomGenerator = Components.classes["@mozilla.org/security/random-generator;1"].getService(Components.interfaces.nsIRandomGenerator);
    		var myKey= randomGenerator.generateRandomBytes(12);
    		fileKey="";
    		i=0;
    		while(i<myKey.length){
    			fileKey+=String.fromCharCode(myKey[i]);
    			i++;
    		}
    		xmlString = "<labelManager>\n\t<header>\n\t\t<key>"+fileKey+"</key>\n\t\t<masterkey></masterkey>\n\t</header>\n";
    		xmlString += "\t<labelDB><test />\n\t</labelDB>\n";
    		xmlString+="</labelManager>";
    		alert(xmlString);
    		var parser=new DOMParser();
    		this.xmldoc = parser.parseFromString(xmlString,"text/xml");
    Le problème c'est que certains caractères générés font planter le Parser (\R(ë4¢Àдì par exemple n'est pas acceptée alors que ‚‡e¸À¼}
    n{_È passe). Le problème c'est que je ne connais pas les caractères incriminés en question. J'aurais donc voulu savoir s'il existait une méthode pour tester si une chaine de caractère et valide pour du XML avant de la parser...

    Merci

  2. #2
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    -> forum mxl fais une recherche sur cdata

  3. #3
    Membre régulier Avatar de Mr Pink Eyes
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 119
    Points
    119
    Par défaut
    Bonjour,

    J'ai essayé de mettre mes caractères spéciaux dans du CDATA :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <labelManager>
    	<header>
    		<key><![CDATA[Ø&#147;¯qïÕ"² 9B`eltC{¤M¬$Ô+#´)&#142;L&#132;Âî¨&#159;%·ÙV50^°]]></key>
    		<masterkey><![CDATA[=çxxHh&#134;{]]></masterkey>
    	</header>
    	<labelDB>
    	</labelDB>
    </labelManager>
    Néanmoins le parser me renvoie toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <parsererror xmlns="http://www.mozilla.org/newlayout/xml/parsererror.xml">Erreur d'analyse XML*: mal formé
    Emplacement*: chrome://browser/content/browser.xul
    Numéro de ligne 3, Colonne 25*:<sourcetext>		&lt;key&gt;&lt;![CDATA[Ø“¯qïÕ"²*9B`eltC{¤M¬$Ô+#´)ŽL„Â%·ÙV50^°]]&gt;&lt;/key&gt;
    --------------------------------------^</sourcetext></parsererror>
    Une autre piste ?

  4. #4
    Membre émérite
    Inscrit en
    Septembre 2002
    Messages
    2 307
    Détails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 2 307
    Points : 2 814
    Points
    2 814
    Par défaut
    je voulais dire que tu t'es trompé de forum. lol

    Sinon prends les bytes entre 32 et 128

  5. #5
    Membre régulier Avatar de Mr Pink Eyes
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    116
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 116
    Points : 119
    Points
    119
    Par défaut
    Bon si un modo veut bien déplacer ce topic dans la section XML le cas échéant je lui en serais reconnaissant.

    En attendant j'ai résolu mon problème en abandonnant la string à passer dans le parser et en créant des CDATASection directement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    xmlString = "<labelManager />";
    		var parser=new DOMParser();
    		this.xmldoc = parser.parseFromString(xmlString,"text/xml");
    		keyCrypt = document.createElement("key");
    		keyCryptValue = document.createCDATASection(des(myPW,myKey,1));
    		keyCrypt.appendChild(keyCryptValue);
    		pwCrypt = document.createElement("masterkey");
    		pwCryptValue = document.createCDATASection(des(myKey,myPW,1));
    		pwCrypt.appendChild(pwCryptValue);
    		this.xmldoc.getElementsByTagName("labelDB")[0].appendChild(keyCrypt);
    		this.xmldoc.getElementsByTagName("labelDB")[0].appendChild(pwCrypt);
    Voili voilou


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Caractères spéciaux dans fichier XML
    Par Kembali dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 02/02/2011, 10h35
  2. Caractère parasite dans fichier XML avec XMLEncoder
    Par TOPGUN89 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 08/07/2010, 10h09
  3. PBM Ecriture caractère spécial dans fichier XML
    Par Le Grand Habchkleu dans le forum VBScript
    Réponses: 1
    Dernier message: 14/09/2009, 11h14
  4. [RegEx] Caractères autorisés dans un formulaire
    Par matpush dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2009, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo