In meinem C # ändere ich geladenes HTML, und muss HTML-Dokument als einfacher Text erhalten. Aber jedes Mal, wenn ich einen neuen Knoten an einen der Knoten des Dokuments anhefte, ändert sich das innere HTML des Wurzelknotens nicht, selbst wenn der neue Knoten erfolgreich hinzugefügt wurde. Nach dem Debuggen bemerkte ich, dass nur die Eltern des neuen Knotens die Änderung in ihrer InnerHtml-Eigenschaft haben, zum Beispiel:
HtmlDocument doc;
HtmlNode root doc.DocumentNode;
HtmlNode node2 = root.ChildNodes[1];
HtmlNode newNode = new HtmlNode(...);
node2.Append(newNode);
Haben:
<root>
<node1>
</node1>
<node2>
<node3>
<node3>
<newNode>
</newNode>
</node2>
</root>
node2.InnerHtml wird sein
<node3>
<node3>
<newNode>
</newNode>
aber root.InnerHtml ist
<root>
<node1>
</node1>
<node2>
<node3>
<node3>
</node2>
</root>
Wie kann ich das richtig machen? (Ich weiß, dass ich den inneren HTML-Code jedes Dokuments manuell aktualisieren könnte, aber üblich ...)
Ich habe dieses Problem gelöst, indem ich die Methode WriteContentTo()
anstelle der Eigenschaften InnerHtml
oder OuterHtml