HTML敏捷包 - 如何在Head元素的頂部追加元素?

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

我正在嘗試使用HTML Agility Pack將腳本元素附加到我的html的HEAD部分的頂部。到目前為止我看到的例子只是使用AppendChild(element)方法來實現這一點。我需要將我附加到head部分的腳本放在其他腳本之前。我怎麼指定這個?

這是我正在嘗試的:

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\"}'";

我想在HEAD的頂部添加一個腳本標記,而不是在末尾附加。

熱門答案

意識到這是一個古老的問題,也有可能在那裡預先存在可能不存在的子元素。

// 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;



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因