C#HtmlAgilityPack內部html在追加節點後不會改變

c# html html-agility-pack nodes tree

在我的C#i中更改加載的html,並且需要將html文檔作為純文本。但每當我將新節點附加到文檔節點之一時,即使成功添加新節點,根節點的內部html也不會更改。調試後我注意到只有新節點的父節點的InnerHtml屬性發生了變化,例如:

HtmlDocument doc;
HtmlNode root doc.DocumentNode;
HtmlNode node2 = root.ChildNodes[1];
HtmlNode newNode = new HtmlNode(...);
node2.Append(newNode);

有:

<root>
    <node1>
    </node1>
    <node2>
        <node3>
        <node3>
        <newNode>
        </newNode>
    </node2>
</root>

node2.InnerHtml將是

        <node3>
        <node3>
        <newNode>
        </newNode>

但是root.InnerHtml是

<root>
    <node1>
    </node1>
    <node2>
        <node3>
        <node3>
    </node2>
</root>

我該如何解決這個問題? (我知道我可以手動更新每個文檔的節點內部html,但常見...)

一般承認的答案

我通過使用方法WriteContentTo()而不是使用屬性InnerHtmlOuterHtml解決了這個問題




許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因