是否有针对.Net的org.apache.commons.lang.StringEscapeUtils的实现?

时间:2010-01-09 01:54:29

标签: c# java .net apache-commons

我正在移植我编写的Java项目,该项目使用Apache Commons Lang StringEscapeUtils类(特别是

escapeXml
unescapeXml
escapeHtml
unescapeHtml

方法)。是否有.Net等价物?或者也许是C#代码的一些完全逻辑的部分可以完成同样的事情?

4 个答案:

答案 0 :(得分:4)

使用System.Web for HTML有:

对于XML转义,您可以使用System.Security命名空间中的SecurityElement.Escape method。然而,我所知道的并不等同于它。您必须编写自己的方法来替换编码的XML,例如<&等等。 escape方法的链接列出了其他项目。

答案 1 :(得分:3)

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);
    }
}

答案 2 :(得分:1)

您可以使用HtmlEncodeHtmlDecode进行Html替换。您可以找到XML转义的选项here

答案 3 :(得分:1)

查看HttpServerUtility班级

HttpServerUtility.HtmlEncode,HtmlDecode,UrlDecode等等......

对于XML:
System.Xml.XmlConvert
System.Security.SecurityElement.Escape