web-dev-qa-db-fra.com

c # remplacer\"caractères

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?

23
Tim Shults

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.)

51
Jon Skeet

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é ...

7
SonicVader

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
5
dcp
\ => \\ and " => \"

alors Replace("\\\"","")

1
malinois

Remplacer (@ "\" "", "")

Vous devez utiliser des guillemets doubles pour escapeguillemets doubles dans une chaîne textuelle.

0
Greg

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.

0
Fredrik Mörk