Ich versuche, HTML Agility Pack zu verwenden, um ein Skriptelement an den Anfang des HEAD-Abschnitts meines HTML anzuhängen. Die Beispiele, die ich bisher gesehen habe, verwenden einfach die AppendChild(element)
-Methode, um dies zu erreichen. Ich brauche das Skript, das ich an den Kopfbereich angehängt habe, um anderen Skripten zu folgen. Wie kann ich das angeben?
Hier ist was ich versuche:
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\"}'";
Ich möchte, dass ein Skript-Tag an der Spitze von HEAD hinzugefügt wird, anstatt am Ende angehängt zu werden.
In der Erkenntnis, dass dies eine alte Frage ist, gibt es auch die Möglichkeit, Kindelemente voranzustellen, die es damals noch nicht gab.
// 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;