[英]Add a doctype to HTML via HTML Agility pack
我知道使用HTML敏捷包向HTML文檔添加元素和屬性很容易。 但是如何使用html敏捷包將文檔類型(例如HTML5)添加到HtmlDocument ? 謝謝
據我所知,AgilityPack沒有直接設置doctype的方法,但正如Hans所說,HAP將doctype視為注釋節點。 因此,您可以先嘗試找到現有的doctype,如果沒有創建新的doctype並在那里粘貼所需的值:
var doctype = doc.DocumentNode.SelectSingleNode("/comment()[starts-with(.,'<!DOCTYPE')]");
if (doctype == null)
doctype = doc.DocumentNode.PrependChild(doc.CreateComment());
doctype.InnerHtml = "<!DOCTYPE html>";
Html Agility Pack解析器將doctype視為注釋節點。 要將文檔類型添加到HTML文檔,只需將具有所需doctype的注釋節點添加到文檔的開頭:
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.Load("withoutdoctype.html");
HtmlCommentNode hcn = htmlDoc.CreateComment("<!DOCTYPE html>");
HtmlNode htmlNode = htmlDoc.DocumentNode.SelectSingleNode("/html");
htmlDoc.DocumentNode.InsertBefore(hcn, htmlNode);
htmlDoc.Save("withdoctype.html");
請注意,我的代碼不會檢查doctype的現有情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.