Estoy seleccionando un nodo con por ejemplo
HtmlDocument temp_HdDocument = new HtmlDocument();
temp_HdDocument.LoadHtml(mysource);
var vrTempNewNode = temp_HdDocument.SelectSingleNode("//a"));
Cambio nodo de esta manera
foreach (HtmlNode node in vrTempNewNode.SelectNodes("*"))
{
node.Remove();
}
Ahora, cuando hago cambios en vrTempNewNode
, también se refleja en temp_HdDocument
¿Cómo puedo evitar que esto suceda? Supongo que el nodo de selección simplemente crea un objeto de referencia, pero quiero que sea una nueva variable local que no sea parte del documento principal
htmlagilitypack c # .net 4.5 wpf
Ese es el comportamiento predeterminado, y es muy útil en la mayoría de los casos. Puede usar HtmlNode.CopyFrom()
para crear una copia independiente del nodo existente que luego puede modificar sin afectar el documento HtmlDocument
original, por ejemplo:
var a = temp_HdDocument.SelectSingleNode("//a"));
HtmlNode temp = HtmlNode.CreateNode("<a></a>");
temp.CopyFrom(a, false);