In Html Agility Pack, quando imposto un attributo di un HtmlNode, dovrei vederlo in HtmlDocument da cui è stato selezionato il nodo?
Diciamo che htmlDocument è un HtmlDocument. Quindi il codice semplificato assomiglia a questo:
HtmlNode documentNode = htmlDocument.DocumentNode;
HtmlNodeCollection nodeCollection = documentNode.SelectNodes(someXPath);
foreach(var node in nodeCollection)
if(SomeCondition(node))
node.SetAttributeValue("class","something");
Ora, vedo l'attributo di classe di modifica del nodo, ma non vedo questa modifica riflessa nell'html di htmlDocument.
In realtà era un caso di ProgrammerTooStupidException :(
Ho usato una classe MyHtmlPage, con una proprietà Html e una DocumentProperty.
_html = theHtml;
_htmlDocument = new HtmlDocument();
HtmlDocument.LoadHtml(theHtml)l
_documentNode = HtmlDocument.DocumentNode;
Ora, con la manipolazione del co-core, il DocumentNode non ha avuto alcun effetto sul valore di _html.
Pubblicando questa risposta per cancellare il nome di HAP.