Ich bin ziemlich neu in c#, so dass ist, warum ich dies hier fragen.
Ich verwende einen Webdienst, der eine lange Zeichenfolge von XML-Werten zurückgibt. Da es sich um eine Zeichenkette handelt, sind alle Attribute in Anführungszeichen gesetzt
string xmlSample = "<root><item att1=\"value\" att2=\"value2\" /></root>"
Hier ist mein Problem. Ich möchte eine einfache string.replace tun. Wenn ich in PHP arbeiten würde, würde ich einfach strip_slashes() ausführen.
Allerdings bin ich in C# und ich kann nicht für das Leben von mir herausfinden, es. Ich kann meinen Ausdruck nicht ausschreiben, um die doppelten Anführungszeichen (") zu ersetzen, weil es die Zeichenfolge beendet. Wenn ich es zu entkommen, dann hat es falsche Ergebnisse. Was mache ich falsch?
string search = "\\\"";
string replace = "\"";
Regex rgx = new Regex(search);
string strip = rgx.Replace(xmlSample, replace);
//Actual Result <root><item att1=value att2=value2 /></root>
//Desired Result <root><item att1="value" att2="value2" /></root>
MizardX: Um ein Anführungszeichen in eine Rohzeichenkette einzufügen, müssen Sie es verdoppeln.
Das ist eine wichtige Information, die ich jetzt ausprobiere... Auch hier kein Glück Irgendetwas ist hier mit den Anführungszeichen los. Die Konzepte, die Sie alle vorschlagen, sind solide, ABER das Problem hier ist der Umgang mit den doppelten Anführungszeichen, und es sieht so aus, als müsste ich einige zusätzliche Recherchen anstellen, um dieses Problem zu lösen. Wenn jemandem etwas einfällt, bitte eine Antwort posten.
string newC = xmlSample.Replace("\\\"", "\"");
//Result <root><item att=\"value\" att2=\"value2\" /></root>
string newC = xmlSample.Replace("\"", "'");
//Result newC "<root><item att='value' att2='value2' /></root>"