HTML Agility Pack-替换div节点

时间:2018-07-08 02:03:34

标签: .net html-agility-pack

我正在尝试将div替换为另一个div,但似乎不起作用。 有什么建议么?

如果您想尝试,我在提琴上有一个副本: https://dotnetfiddle.net/A5a6I0

public class Program
{
    public static void Main()
    {
        var html =
        @"<div id='div1'> hello </div>";

        var htmlDoc = new HtmlDocument();
        htmlDoc.LoadHtml(html);

        Console.WriteLine("\n****Before child node replaced****\n");

        Console.WriteLine(htmlDoc.Text);        

        HtmlNode oldChild =  htmlDoc.DocumentNode.SelectSingleNode("//div[@id='div1']");

        HtmlNode newChild = HtmlNode.CreateNode("<h2> This is h2 new child heading</h2>");

        Console.WriteLine("Node Name: " + oldChild.Name);


        oldChild.ParentNode.ReplaceChild(newChild, oldChild);

        Console.WriteLine("\n****After child node replaced****\n");

        Console.WriteLine(htmlDoc.Text);

    }

}

1 个答案:

答案 0 :(得分:0)

HTMLAgilityPack更新text属性似乎存在一些问题和潜在的错误。

我可以通过将htmlDoc.Text替换为htmlDoc.DocumentNode.OuterHtml来使其工作。