Заменить & на & в C # - PullRequest
       22

Заменить & на & в C #

5 голосов
/ 30 сентября 2010

Хорошо, я чувствую себя действительно глупо, спрашивая это.Я вижу множество других вопросов, которые похожи на мой вопрос, но ни один из них не может ответить на него.

Я создаю XML-файл для программы, которая очень требовательна к синтаксису.К сожалению, я делаю XML-файл с нуля.Это значит, что я помещаю каждую строку по отдельности (много файлов. WriteLine (String)).

Я знаю, что это ужасно, но это единственный способ заставить логику работать.1006 * ИНАЧЕ.У меня есть несколько строк с '&' в них.

if (value.Contains("&"))
   {
      value.Replace("&", "&");
   }

Кажется, не работает.Значение .Contains (), кажется, видит это, но замена не работает.Я использую C # .Net 2.0 sp2.VS 2005.

Пожалуйста, помогите мне здесь .. Это была длинная неделя ..

Ответы [ 12 ]

0 голосов
/ 21 января 2015

не уверен, если это кому-нибудь пригодится ... Я боролся с этим некоторое время ... вот замечательное регулярное выражение, которое вы можете использовать, чтобы исправить все ваши ссылки, JavaScript, контент.Мне пришлось иметь дело с кучей устаревшего контента, который никто не хотел исправлять.

Добавьте это в переопределение рендера на главной странице, управляйте или перекодируйте, чтобы пропустить строку через него.Пожалуйста, не сердитесь на меня за то, что я поставил это в неправильном месте:

// remove the & from href="blaw?a=b&b=c" and replace with & 
//in urls - this corrects any unencoded & not just those in URL's
// this match will also ignore any matches it finds within <script> blocks AND
// it will also ignore the matches where the link includes a javascript command like
// <a href="javascript:alert{'& & &'}">blaw</a>
html = Regex.Replace(html, "&(?!(?<=(?<outerquote>[\"'])javascript:(?>(?!\\k<outerquote>|[>]).)*)\\k<outerquote>?)(?!(?:[a-zA-Z][a-zA-Z0-9]*|#\\d+);)(?!(?>(?:(?!<script|\\/script>).)*)\\/script>)", "&amp;", RegexOptions.Singleline | RegexOptions.IgnoreCase);

Это широкий штрих для отрисованной страницы, но его можно адаптировать ко многим случаям, не взрывая вашу страницу.

0 голосов
/ 26 марта 2013

А как же

Value = Server.HtmlEncode(Value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...