Paquete de agilidad HTML: ¿Cómo se puede agregar un elemento en la parte superior del elemento Head?

.net asp.net-mvc-2 c# html-agility-pack

Pregunta

Estoy tratando de usar HTML Agility Pack para agregar un elemento de script en la parte superior de la sección HEAD de mi html. Los ejemplos que he visto hasta ahora solo usan el AppendChild(element) para lograr esto. Necesito que el script que estoy adjuntando a la sección de encabezado aparezca antes que otros scripts. ¿Cómo puedo especificar esto?

Esto es lo que estoy tratando:

HtmlDocument htmlDocument = new HtmlDocument();
htmlDocument.Load(filePath);
HtmlNode head = htmlDocument.DocumentNode.SelectSingleNode("/html/head");
HtmlNode stateScript = htmlDocument.CreateElement("script");
head.AppendChild(stateScript);
stateScript.SetAttributeValue("id", "applicationState");
stateScript.InnerHtml = "'{\"uid\":\"testUser\"}'";

Me gustaría que se agregue una etiqueta de script hacia la parte superior de HEAD en lugar de agregarse al final.

Respuesta popular

Al darse cuenta de que esta es una pregunta antigua, también existe la posibilidad de anteponer elementos secundarios que podrían no haber existido en ese momento.

// Load content as new Html document
HtmlDocument html = new HtmlDocument();
html.LoadHtml(oldContent);

// Wrapper acts as a root element
string newContent = "<div>" + someHtml + "</div>";

// Create new node from newcontent
HtmlNode newNode = HtmlNode.CreateNode(newContent);

// Get body node
HtmlNode body = html.DocumentNode.SelectSingleNode("//body");

// Add new node as first child of body
body.PrependChild(newNode);

// Get contents with new node
string contents = html.DocumentNode.InnerHtml;


Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué
Licencia bajo: CC-BY-SA with attribution
No afiliado con Stack Overflow
¿Es esto KB legal? Sí, aprende por qué