3

我正在移植我编写的使用Apache Commons Lang StringEscapeUtils类的 Java 项目(尤其是

escapeXml
unescapeXml
escapeHtml
unescapeHtml

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

4

4 回答 4

4

将 System.Web 用于 HTML 有:

对于 XML 转义,您可以使用 System.Security 命名空间中的SecurityElement.Escape 方法。但是,据我所知,没有等价于 unescape 它。您必须编写自己的方法来替换编码的 XML,例如<&。转义方法的链接列出了其他项目。

于 2010-01-09T01:57:58.183 回答
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);
    }
}
于 2010-01-09T02:05:18.120 回答
1

您可以使用HtmlEncodeHtmlDecode进行 Html 替换。您可以在此处找到 XML 转义选项。

于 2010-01-09T01:59:32.017 回答
1

查看HttpServerUtility

HttpServerUtility.HtmlEncode、HtmlDecode、UrlDecode 等...

也适用于 XML:
System.Xml.XmlConvert
System.Security.SecurityElement.Escape

于 2010-01-09T01:59:36.027 回答