首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过HTML敏捷包向HTML添加doctype

通过HTML敏捷包向HTML添加doctype
EN

Stack Overflow用户
提问于 2012-03-31 16:10:09
回答 2查看 3.7K关注 0票数 7

我知道使用HTML敏捷性包向HTML文档添加元素和属性很容易。但是,如何使用html敏捷性包将doctype (例如HTML5类型)添加到HtmlDocument中呢?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-31 18:05:05

Html敏捷包解析器将doctype视为注释节点。为了将doctype添加到HTML文档中,只需将具有所需doctype的注释节点添加到文档的开头:

代码语言:javascript
复制
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的存在。

票数 8
EN

Stack Overflow用户

发布于 2012-03-31 18:15:56

据我所知,AgilityPack没有一个直接的方法来设置doctype,但是正如Hans提到的,HAP将doctype视为一个注释节点。因此,您可以尝试先找到现有的doctype,如果没有创建一个新的doctype,然后在那里粘贴所需的值:

代码语言:javascript
复制
var doctype = doc.DocumentNode.SelectSingleNode("/comment()[starts-with(.,'<!DOCTYPE')]");
if (doctype == null)
    doctype = doc.DocumentNode.PrependChild(doc.CreateComment());

doctype.InnerHtml = "<!DOCTYPE html>";
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9957525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档