将HTML特殊实体替换为自定义字符串的最有效方法

时间:2016-11-15 10:48:08

标签: c# string

我想将ALL HTML special entities替换为> <自定义字符串。

假设我有以下字符串:

string str = "<div>&gt;hello&lt;</div>";

和方法: Method(string str, string replaceStr)

调用Method(str, ":)")后,结果应为

<div>:)hello:)</div>

问题是有太多特殊字符,我想知道实现这一目标的最有效方法是什么?

编辑:

String.Replace不会完成我的工作,使用Regex解析HTML并不是一个很好的方法。

由于不喜欢这个问题,可能没有任何干净的解决方案因此我决定采用以下算法:

  1. 使用有效的HTML特殊字符创建txt文件(如 &para;
  2. 将文件解析为字符串数组
  3. 感谢HtmLAgilityPack解析HTML并获取原始文本并替换所有实体。
  4. 我知道这对于大的html字符串并不是真的有效,但它现在应该做的工作。

1 个答案:

答案 0 :(得分:1)

您可以尝试:

        string str = "<div>&gt;hello&lt;</div>";
        string output = Regex.Replace(str, "&gt;|&lt;", ":)");

您也可以使用HtmlDecode

        string str = "<div>&gt;hello&lt;</div>";
        string output = WebUtility.HtmlDecode(str);