XmlWriter для создания HTML-кода - как добавить простые непарные теги?

StackOverflow https://stackoverflow.com/questions/1807975

  •  05-07-2019
  •  | 
  •  

Вопрос

Мне посоветовали использовать XmlWriter для создания HTML-документов, чтобы отображать их в webbrowser object.Создание doctype и startelements, таких как HTML, BODY, в порядке .. но я испытываю 2 основные проблемы:

  1. Я не могу добавлять теги, такие как <br>.Использование пропусков строки записи < и >.
  2. Выходная строка состоит из одной строки - мне нужно что-то вроде 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();
}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top