Я довольно новичок в c #, поэтому я спрашиваю об этом здесь.
Я использую веб-сервис, который возвращает длинную строку значений XML. Поскольку это строка, все атрибуты избежали двойных кавычек
string xmlSample = "<root><item att1=\"value\" att2=\"value2\" /></root>"
Вот моя проблема. Я хочу сделать простой string.replace. Если бы я работал в PHP, я бы просто запустил strip_slashes ().
Тем не менее, я нахожусь в C #, и я не могу понять это. Я не могу выписать свое выражение, чтобы заменить двойные кавычки ("), потому что оно завершает строку. Если я избегаю его, то оно дает неправильные результаты. Что я делаю неправильно?
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: чтобы включить кавычку в необработанную строку, вам нужно ее удвоить.
Это важная информация, пробуя этот подход сейчас ... Там тоже не повезло
Здесь что-то происходит с двойными кавычками. Концепции, которые вы все предлагаете, являются твердыми, НО проблема здесь связана с двойными кавычками, и, похоже, мне потребуется провести дополнительное исследование, чтобы решить эту проблему. Если кто-то что-то придумает, пожалуйста, напишите ответ.
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>"