Есть ли реализация org.apache.commons.lang.StringEscapeUtils для .Net? - PullRequest
3 голосов
/ 09 января 2010

Я портирую через Java-проект, который я написал и который использует Apache Commons Lang StringEscapeUtils (особенно

escapeXml
unescapeXml
escapeHtml
unescapeHtml

методы). Есть ли эквивалент .Net? Или, может быть, какой-то совершенно логичный кусочек кода на C #, который выполняет то же самое?

Ответы [ 4 ]

4 голосов
/ 09 января 2010

При использовании System.Web для HTML есть:

Для выхода из XML вы можете использовать SecurityElement.Escape метод в пространстве имен System.Security. Тем не менее, нет никакого эквивалента, чтобы скрыть это, о котором я знаю. Вы должны написать свой собственный метод, который заменяет закодированный XML, такой как < и & и т. Д. Их эквивалентами. Ссылка для метода escape содержит список других элементов.

3 голосов
/ 09 января 2010
public static class StringEscapeUtils
{
    public static string EscapeXml(string unescaped)
    {
        return SecurityElement.Escape(unescaped);
    }

    public static string UnescapeXml(string escaped)
    {
        return escaped.Replace("&lt;", "<")
                      .Replace("&gt;", ">")
                      .Replace("&quot;", "\"")
                      .Replace("&apos;", "'")
                      .Replace("&amp;", "&");
    }

    public static string EscapeHtml(string unescaped)
    {
        return HttpUtility.HtmlEncode(unescaped);
    }

    public static string UnescapeHtml(string escaped)
    {
        return HttpUtility.HtmlDecode(escaped);
    }
}
1 голос
/ 09 января 2010

Оформить HttpServerUtility Класс

HttpServerUtility.HtmlEncode, HtmlDecode, UrlDecode и т. Д. И т. Д ...

Также для XML:
System.Xml.XmlConvert
System.Security.SecurityElement.Escape

1 голос
/ 09 января 2010

Вы можете использовать HtmlEncode и HtmlDecode для замены Html. Ваши варианты экранирования XML можно найти здесь .

...