vous pouvez utiliser la méthode ci-dessous. J'ai ajouté ceci dans le prototype pour un accès plus facile.
J'ai également utilisé une prévision négative pour que cela ne gâche pas les choses si vous appelez la méthode deux fois ou plus.
Usage:
var original = "Hi&there";
var escaped = original.EncodeXMLEscapeChars(); //Hi&there
Le décodage est géré automatiquement dans l'analyseur XML.
Méthode :
//String Extenstion to format string for xml content.
//Replces xml escape chracters to their equivalent html notation.
String.prototype.EncodeXMLEscapeChars = function () {
var OutPut = this;
if ($.trim(OutPut) != "") {
OutPut = OutPut.replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
OutPut = OutPut.replace(/&(?!(amp;)|(lt;)|(gt;)|(quot;)|(#39;)|(apos;))/g, "&");
OutPut = OutPut.replace(/([^\\])((\\\\)*)\\(?![\\/{])/g, "$1\\\\$2"); //replaces odd backslash(\\) with even.
}
else {
OutPut = "";
}
return OutPut;
};