Я пытаюсь создать файл XHTMl с нуля с помощью HtmlAgilityPack. Следуя советам, представленные в Add a doctype to HTML via HTML Agility pack, я пытаюсь добавить доктайп к нему:Проблемы с doctype с помощью HtmlAgilityPack
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 как есть в файле?
EDIT: Добавлены пользовательские расширения для HTMLDocument
Я не на Windows, так что я не могу проверить это, но мне кажется, вы не следуя советам в этих ответах. Кроме того, возможно, что 'OptionOutputAsXml = true' может стать причиной проблемы. – GolfWolf
проверьте мой ответ и скажите мне, помогли ли вы. – mybirthname
@ w0lf вы можете мне сказать, где я не следую советам? Мне нужен параметр OptionOutputAsXml = true, потому что мне нужен документ XHTML. – Thaoden