XMLWriter para la creación de HTML: ¿cómo agregar etiquetas simples sin pares?

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

  •  05-07-2019
  •  | 
  •  

Pregunta

Me recomendaron utilizar XMLwriter para crear documentos HTML con el fin de mostrarlos en el objeto del navegador web.Crear doctype y elementos de inicio como HTML, BODY está bien... pero estoy experimentando 2 problemas principales:

  1. No puedo agregar etiquetas como <br>.Usando saltos de WriteString < y >.
  2. La cadena de salida es una línea; necesitaría algo como writeLine.Ya sabes, cuando muestro la fuente, todo está en la primera línea.

Gracias

¿Fue útil?

Solución

HTML no es un formato XML válido, ya que está descubriendo con etiquetas como < img ... >

Puede crear XHTML , que es compatible con XML (especifique esto en su DOCTYPE )

En XHTML, las etiquetas individuales se escriben así < br / > por ejemplo

 HTML: <img src="..">
 XHTML: <img src=".." />

Este enlace puede ser útil XHTML vs HTML

El diseño de espacios en blanco es bueno para que los humanos lo lean, pero no hace ninguna diferencia en cómo el navegador representa el Xhtml. De hecho, eliminar espacios en blanco innecesarios producirá archivos un poco más pequeños.

Otros consejos

Puede usar el Indent propiedad:

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();
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top