.net HTML敏捷包-替换div节点

.net HTML敏捷包-替换div节点,.net,html-agility-pack,.net,Html Agility Pack,我试图用另一个div替换一个div,但它似乎不起作用。 有什么建议吗 如果你想试试,我有一本在小提琴上: 公共类程序 { 公共静态void Main() { 变量html= @“你好”; var htmlDoc=新的HtmlDocument(); htmlDoc.LoadHtml(html); Console.WriteLine(“\n****子节点替换前****\n”); Console.WriteLine(htmlDoc.Text); HtmlNode oldChild=htmlDoc.D

我试图用另一个
div
替换一个
div
,但它似乎不起作用。 有什么建议吗

如果你想试试,我有一本在小提琴上:

公共类程序
{
公共静态void Main()
{
变量html=
@“你好”;
var htmlDoc=新的HtmlDocument();
htmlDoc.LoadHtml(html);
Console.WriteLine(“\n****子节点替换前****\n”);
Console.WriteLine(htmlDoc.Text);
HtmlNode oldChild=htmlDoc.DocumentNode.SelectSingleNode(“//div[@id='div1']”);
HtmlNode newChild=HtmlNode.CreateNode(“这是h2新的子标题”);
Console.WriteLine(“节点名称:”+oldChild.Name);
oldChild.ParentNode.ReplaceChild(newChild,oldChild);
Console.WriteLine(“\n****子节点替换后****\n”);
Console.WriteLine(htmlDoc.Text);
}
}

HTMLAgilityPack更新文本属性时似乎存在一些问题和潜在的bug

通过将
htmlDoc.Text
替换为
htmldocumentnode.OuterHtml
,我可以让它正常工作

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);

    }

}