簡體   English   中英

通過HTML Agility pack將文檔類型添加到HTML

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM