XMLWriter para a criação de HTML - como adicionar simples tags não par?
Pergunta
fui aconselhado a usar XMLwriter aos documentos de construção HTML, a fim de exibi-los em objeto webbrowser. Criando doctype e startelements como HTML, o corpo é OK..but estou experimentando 2 problemas principais:
- Não consigo adicionar tags como
<br>
. Usando WriteString salta<
e>
. - A seqüência de saída é uma linha - Eu precisaria de algo como WriteLine. Você sabe, quando eu exibir fonte é tudo na primeira linha.
Graças
Solução
HTML não é um formato XML válido, como você está discoving com tags como
Você pode criar XHTML , que é compatível com XML (especificar isso em sua DOCTYPE )
Em XHTML tags simples são escritas como este
por exemplo
HTML: <img src="..">
XHTML: <img src=".." />
Este link pode ser útil XHTML vs HTML
layout de espaços em branco é bom para os seres humanos de ler, mas não faz diferença para a forma como o navegador processa o XHTML. Na verdade tirando espaços em branco desnecessários irá produzir arquivos ligeiramente menores.
Outras dicas
Você pode usar o recuo propriedade:
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();
}