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).
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¸À¼}
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");
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
Partager