XmlWriter для создания HTML-кода - как добавить простые непарные теги?
Вопрос
Мне посоветовали использовать XmlWriter для создания HTML-документов, чтобы отображать их в webbrowser object.Создание doctype и startelements, таких как HTML, BODY, в порядке .. но я испытываю 2 основные проблемы:
- Я не могу добавлять теги, такие как
<br>
.Использование пропусков строки записи<
и>
. - Выходная строка состоит из одной строки - мне нужно что-то вроде WriteLine .Вы знаете, когда я показываю исходный код, все это находится в первой строке.
Спасибо
Решение
HTML не является допустимым форматом XML, как вы обнаруживаете с помощью таких тегов, как <img ...="">
Вы могли бы создать XHTML, который совместим с XML (укажите это в вашем ТИП ДОКУМЕНТА)
В XHTML отдельные теги записываются следующим образом <br /> например
HTML: <img src="..">
XHTML: <img src=".." />
Эта ссылка может быть полезной XHTML против HTML
Расположение пробелов удобно для чтения людьми, но не имеет никакого значения для того, как браузер отображает Xhtml.На самом деле удаление ненужных пробелов приведет к созданию файлов немного меньшего размера.
Другие советы
Вы могли бы использовать Отступ свойство:
var settings = new XmlWriterSettings();
settings.Indent = true;
using (var writer = XmlWriter.Create(outputStream, settings))
{
writer.WriteDocType("html", "-//W3C//DTD XHTML 1.0 Transitional//EN", "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd", null);
writer.WriteStartElement("html");
writer.WriteStartElement("body");
writer.WriteStartElement("b");
writer.WriteValue("Test");
writer.WriteEndElement();
writer.WriteEndElement();
writer.WriteEndElement();
}