我正在移植我编写的使用Apache Commons Lang StringEscapeUtils类的 Java 项目(尤其是
escapeXml
unescapeXml
escapeHtml
unescapeHtml
方法)。有 .Net 等价物吗?或者也许是一些完全合乎逻辑的 C# 代码可以完成同样的事情?
我正在移植我编写的使用Apache Commons Lang StringEscapeUtils类的 Java 项目(尤其是
escapeXml
unescapeXml
escapeHtml
unescapeHtml
方法)。有 .Net 等价物吗?或者也许是一些完全合乎逻辑的 C# 代码可以完成同样的事情?
将 System.Web 用于 HTML 有:
对于 XML 转义,您可以使用 System.Security 命名空间中的SecurityElement.Escape 方法。但是,据我所知,没有等价于 unescape 它。您必须编写自己的方法来替换编码的 XML,例如<
等&
。转义方法的链接列出了其他项目。
public static class StringEscapeUtils
{
public static string EscapeXml(string unescaped)
{
return SecurityElement.Escape(unescaped);
}
public static string UnescapeXml(string escaped)
{
return escaped.Replace("<", "<")
.Replace(">", ">")
.Replace(""", "\"")
.Replace("'", "'")
.Replace("&", "&");
}
public static string EscapeHtml(string unescaped)
{
return HttpUtility.HtmlEncode(unescaped);
}
public static string UnescapeHtml(string escaped)
{
return HttpUtility.HtmlDecode(escaped);
}
}
您可以使用HtmlEncode和HtmlDecode进行 Html 替换。您可以在此处找到 XML 转义选项。
HttpServerUtility.HtmlEncode、HtmlDecode、UrlDecode 等...
也适用于 XML:
System.Xml.XmlConvert
System.Security.SecurityElement.Escape