C # HtmlAgilityPack html interno non cambia dopo l'aggiunta del nodo

c# html html-agility-pack nodes tree

Domanda

Nel mio C # cambio HTML caricato e ho bisogno di ottenere il documento html come testo normale. Ma ogni volta che aggiungo un nuovo nodo a uno dei nodi del documento, l'html interno del nodo radice non cambia, anche se il nuovo nodo è stato aggiunto con successo. Dopo il debug ho notato che solo i genitori del nuovo nodo hanno la modifica nella loro proprietà InnerHtml, ad esempio:

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

avere:

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

node2.InnerHtml sarà

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

ma root.InnerHtml è

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

Come posso risolvere questo giusto? (So ​​che potrei aggiornare manualmente il nodo interno di ogni documento html, ma comune ...)

Risposta accettata

Ho risolto questo problema utilizzando il metodo WriteContentTo() invece di utilizzare le proprietà InnerHtml o OuterHtml




Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché