C # HtmlAgilityPack html interne ne change pas après avoir ajouté un noeud

c# html html-agility-pack nodes tree

Question

Dans mon C #, je change le code HTML chargé et je dois obtenir le document HTML en texte brut. Mais chaque fois que j'ajoute un nouveau nœud à l'un des nœuds du document, le code HTML interne du nœud racine ne change pas, même si le nouveau nœud est ajouté avec succès. Après le débogage, j'ai remarqué que seuls les parents du nouveau nœud ont modifié leur propriété InnerHtml, par exemple:

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

Ayant:

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

node2.InnerHtml sera

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

mais root.InnerHtml est

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

Comment puis-je résoudre ce droit? (Je sais que je pourrais mettre à jour manuellement le noeud html de chaque document, mais commun ...)

Réponse acceptée

J'ai résolu ce problème en utilisant la méthode WriteContentTo() au lieu d'utiliser les propriétés InnerHtml ou OuterHtml




Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Est-ce KB légal? Oui, apprenez pourquoi