0

因此,我已将以下内容加载到一个文本文件中,然后将其读入列表中的 c# 程序,然后将列表转换为字符串。现在我想解码所有 HTML 中的字符串,但我做不到。有人现在怎么样?这是要格式化的文本:

<p> <span style="font-size: 18px;"><strong>Varifr&aring;n kommer den svarta m&auml;rren&nbsp; i Sm&aring;land?</strong></span></p>
  <p> <span style="font-size: 14px;"><input checked="checked" name="ruta1" type="checkbox" value="Svar 1" />&nbsp;Fr&aring;n Tyskland</span></p>
    <p> <input type="checkbox" />Fr&aring;n Belgien</p>
      <p> &nbsp;</p>
        <p> <input type="checkbox" />&nbsp;Fr&aring;n Turkiet</p>
      <p>  &nbsp;</p>
   <p>  &nbsp;</p>
<p>  &nbsp;</p>
public partial class Form1 : Form
    {
        string temp = "TextKod.txt";
        string line = "";
        List<string> texten = new List<string>();
        string vetEj;
        string hoppSan;
        public Form1()
        {
            InitializeComponent();

            StreamReader sr = new StreamReader(temp);

            while ((line = sr.ReadLine()) != null)
            {
                string[] myarray = line.Split('\r');
                vetEj = myarray[0];
                texten.Add(vetEj);
            }
            hoppSan = string.Join("\r", texten);
4

2 回答 2

1

我认为您真正想要的是对字符串进行编码。但无论哪种方式,添加对类的引用System.Web并利用HttpUtility该类。解码:

HttpUtility.HtmlDecode(htmlString);

并编码:

HttpUtility.HtmlEncode(htmlString);

要摆脱所有 HTML 元素,请执行以下操作:

var cleanHtml = Regex.Replace(htmlString, "<.*?>", "");

您可以将 Regex 修改为此<.*?>|&.*?;以摆脱这些&nbsp;元素,但这也与&aring;in匹配Fr&aring;n Tyskland,所以这取决于您。

于 2013-10-09T12:53:16.313 回答
0

如果您使用的是 .NET 4.0+,您还可以使用WebUtility.HtmlDecode,它不需要额外的程序集引用,因为它在 System.Net 命名空间中可用。

这也可以帮助

 myEncodedString = HttpUtility.HtmlEncode(string);
于 2013-10-09T12:52:33.890 回答