我試圖用HtmlAgilityPack從頭創建一個XHTMl文件。繼Add a doctype to HTML via HTML Agility pack提出的建議,我嘗試將文檔類型添加到它:使用HtmlAgilityPack的doctype的問題
private static HtmlDocument createEmptyDoc()
{
HtmlDocument titlePage = new HtmlDocument();
titlePage.OptionOutputAsXml = true;
titlePage.OptionCheckSyntax = true;
titlePage.AddDoctype();
var html = titlePage.CreateElement("html");
titlePage.DocumentNode.AppendChild(html);
return titlePage;
}
public static class HtmlDocumentExtensions
{
public static void AddDoctype(this HtmlDocument doc)
{
var doctype = doc.DocumentNode.PrependChild(doc.CreateComment("<!doctype html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">"));
}
}
然而,當我這個文件寫入一個文件,它看起來像這樣:
<?xml version="1.0" encoding="iso-8859-1"?>
<!--type html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.d-->
<html />
的DOCTYPE真正得到作爲評論對待,一些字符被短劃線代替。我該如何解決這個問題,並將doctype原樣寫入文件?
編輯:添加自定義擴展到HTMLDocument的
我不是在Windows上,所以我不能對此進行測試,但似乎你不按照這些答案的建議。另外,'OptionOutputAsXml = true'可能會導致部分問題。 – GolfWolf
檢查我的答案,並告訴我是否幫助你。 – mybirthname
@ w0lf你能告訴我我沒有聽從建議嗎?我需要'OptionOutputAsXml = true',因爲我需要一個XHTML文檔。 – Thaoden