Estoy intentando insertar un nuevo nodo en el documento utilizando htmlagilitypack. Estoy leyendo el documento del flujo, inserto el nodo y luego devuelvo el documento como un objeto FileContentResult:
HtmlDocument ndoc = new HtmlDocument();
ndoc.Load(stream);
HtmlNode usern = HtmlNode.CreateNode("<img .... />");
usern.Attributes.Add("onclick", "javascript:document.location.href='/Home/Index';");
ndoc.DocumentNode.SelectSingleNode("id('main')").AppendChild(usern);
using (MemoryStream ms = new MemoryStream())
{
ndoc.Save(ms);
ms.Seek(0, System.IO.SeekOrigin.Begin);
fileBytes = ms.ToArray();
}
FileContentResult file = File(fileBytes, "text/html");
return file;
Problema: el nuevo nodo (img) no se está insertando. Mi contenido del pie de página se ha ido si estoy usando este código y si acabo de leer el documento de la transmisión y regresar como FileContentResult, entonces todo es perfecto. Quiero saber cuál es el problema con este código o dónde estoy haciendo un error.
Encontré el mismo problema, lo resolví pasando el objeto de clonación. solo modifica la linea
ndoc.DocumentNode.SelectSingleNode("id('main')").AppendChild(usern);
a
ndoc.DocumentNode.SelectSingleNode("id('main')").AppendChild(usern.CloneNode(true));