Html Agility Pack Ampersand Bug(<title> Google Adwords&amp; trade; </title>)

时间:2016-05-24 08:52:03

标签: c# html-agility-pack

我正在使用html agility pack解析html标签并遇到问题

Google Adwords&amp; trade; - 见标题

在标题中,用户已放入&amp;我们转换它并得到放大器。

我试图用空间替换放大器而没有成功:

 var sTitle = htmlDoc.DocumentNode.SelectNodes("//title");

            sTitle.Replace("amp").("")

我该怎么办?

1 个答案:

答案 0 :(得分:1)

不清楚您的问题是什么,但假设您正在询问如何正确阅读html编码的文本(例如html编码中的&amp;字符为&amp;(请参阅this HTML代码列表及其代表的字符,

你需要使用System.Net.HttpUtility的HtmlDecode函数。

请参阅以下演示:

        string s = "<title>Google Adwords&amp;trade;</title>";

        HtmlDocument doc = new HtmlDocument();
        doc.LoadHtml(s);

        var titleNode = doc.DocumentNode.SelectSingleNode("//title");

        //prints Google Adwords&amp;trade;
        Console.WriteLine(titleNode.InnerText);

        //prints Google Adwords&trade;
        Console.WriteLine(HttpUtility.HtmlDecode(titleNode.InnerText));