Html Agility Pack: Das Festlegen des Attributwerts eines HtmlNodes spiegelt sich nicht in HtmlDocument wider

html-agility-pack setattribute

Frage

Wenn ich in Html Agility Pack ein Attribut eines HtmlNode setze, sollte ich dies in dem HtmlDocument sehen, aus dem der Knoten ausgewählt wurde?

Sagen wir, dass htmlDocument ein HtmlDocument ist. Der vereinfachte Code sieht also so aus:

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

Jetzt sehe ich das Klassenattribut der Knotenänderung, aber ich sehe diese Änderung nicht im HTML von htmlDocument.

Akzeptierte Antwort

Eigentlich war es ein Fall von ProgrammerTooStupidException :(

Ich habe eine MyHtmlPage-Klasse mit einer Html-Eigenschaft und einer DocumentProperty verwendet.

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

Nun hatte der DocumentNode keine Auswirkung auf den _html-Wert.

Veröffentlichen Sie diese Antwort, um den Namen von HAP zu löschen.



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Ist diese KB legal? Ja, lerne warum