Je reçois une chaîne XML que j'essaye d'analyser via un XmlReader et j'essaie d'effacer les caractères \"
.
J'ai essayé
.Replace(@"\", "")
.Replace("\\''", "''")
.Replace("\\''", "\"")
plus plusieurs autres moyens.
Des idées?
Avez-vous essayé comme ça:
string text = GetTextFromSomewhere();
text.Replace("\\", "");
text.Replace("\"", "");
? Si c'est le cas, c'est le problème - Replace
ne modifie pas la chaîne originale string, elle retourne une chaîne new avec le remplacement effectué ... afin que vous souhaitiez:
string text = GetTextFromSomewhere();
text = text.Replace("\\", "").Replace("\"", "");
Notez que cela remplacera chaque caractère barre oblique inverse et chaque caractère guillemet double; si vous vouliez seulement remplacer la paire paire "barre oblique inverse suivie de guillemets", utilisez simplement:
string text = GetTextFromSomewhere();
text = text.Replace("\\\"", "");
(Comme mentionné dans les commentaires, cela est dû au fait que les chaînes sont immuables dans .NET - une fois que vous avez un objet chaîne, cette chaîne aura toujours le même contenu. Vous pouvez affecter une référence à un différent chaîne à une variable bien sûr, mais cela ne change pas réellement le contenu de la chaîne existante.)
Dans .NET Framework 4 et MVC, il s'agit de la seule représentation qui a fonctionné:
Replace(@"""","")
L'utilisation d'une barre oblique inverse dans n'importe quelle combinaison n'a pas fonctionné ...
Essayez comme ça:
Replace("\\\"","");
Cela remplacera les occurrences de \"
par une chaîne vide.
Ex:
string t = "\\\"the dog is my friend\\\"";
t = t.Replace("\\\"","");
Cela se traduira par:
the dog is my friend
\ => \\ and " => \"
alors Replace("\\\"","")
Remplacer (@ "\" "", "")
Vous devez utiliser des guillemets doubles pour escapeguillemets doubles dans une chaîne textuelle.
Où ces personnages se produisent-ils? Les voyez-vous si vous examinez les données XML dans, par exemple, le bloc-notes? Ou les voyez-vous lorsque vous examinez les données XML dans le débogueur. Si c'est le dernier cas, il ne s'agit que de caractères d'échappement pour les caractères "
, et font donc partie des données XML réelles.