Pack d'agilité HTML: la définition de la valeur d'attribut d'un HtmlNode n'est pas reflétée dans le HtmlDocument

html-agility-pack setattribute

Question

Dans le pack d'agilité HTML, lorsque je définis un attribut d'un nœud HtmlNode, dois-je le voir dans le document HTML à partir duquel le nœud a été sélectionné?

Disons que htmlDocument est un htmlDocument. Donc, le code simplifié ressemble à ceci:

HtmlNode documentNode = htmlDocument.DocumentNode;
HtmlNodeCollection nodeCollection = documentNode.SelectNodes(someXPath);
foreach(var node in nodeCollection)
   if(SomeCondition(node))
       node.SetAttributeValue("class","something");

Maintenant, je vois l'attribut de classe du changement de noeud, mais je ne vois pas ce changement reflété dans le html de htmlDocument.

Réponse acceptée

En fait, c’était un cas de ProgrammerTooStupidException :(

J'ai utilisé une classe MyHtmlPage, avec une propriété HTML et un DocumentProperty.

_html = theHtml;
_htmlDocument = new HtmlDocument();
HtmlDocument.LoadHtml(theHtml)l
_documentNode = HtmlDocument.DocumentNode;

Désormais, lors de la manipulation de cours, le DocumentNode n’a aucun effet sur la valeur _html.

Poster cette réponse pour effacer le nom de HAP.




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