Je sélectionne un noeud avec par exemple
HtmlDocument temp_HdDocument = new HtmlDocument();
temp_HdDocument.LoadHtml(mysource);
var vrTempNewNode = temp_HdDocument.SelectSingleNode("//a"));
Je change de noeud de cette façon
foreach (HtmlNode node in vrTempNewNode.SelectNodes("*"))
{
node.Remove();
}
Maintenant, lorsque je fais des modifications sur vrTempNewNode
il est également reflété à temp_HdDocument
Comment puis-je empêcher cela? Je suppose que select node crée simplement un objet de référence mais je veux que ce soit une nouvelle variable locale ne faisant pas partie du document principal
htmlagilitypack c # .net 4.5 wpf
C'est le comportement par défaut, et c'est très pratique dans la plupart des cas. Vous pouvez utiliser HtmlNode.CopyFrom()
pour créer une copie indépendante du noeud existant que vous pouvez ensuite modifier sans affecter le HtmlDocument
origine, par exemple:
var a = temp_HdDocument.SelectSingleNode("//a"));
HtmlNode temp = HtmlNode.CreateNode("<a></a>");
temp.CopyFrom(a, false);