2009-11-27 9 views
1

On m'a conseillé d'utiliser XMLwriter pour construire des documents HTML afin de les afficher dans l'objet webbrowser. Création doctype et startelements comme HTML, le corps est OK..but Je rencontre 2 problèmes principaux:XMLWriter pour la création HTML - comment ajouter des balises non-paires simples?

  1. Je ne peux pas ajouter des balises comme <br>. L'utilisation de WriteString ignore les étapes < et >.
  2. La chaîne de sortie est une ligne - j'aurais besoin de quelque chose comme writeLine. Vous savez, quand je montre la source, tout est dans la première ligne.

Merci

Répondre

0

HTML est pas un format XML valide, comme vous discoving avec des balises comme < img ... >

Vous pouvez créer XHTML, qui est conforme à XML (préciser dans votre DOCTYPE)

En simples balises XHTML sont ECRIT comme celui-ci < br/> par exemple

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

Ce lien pourrait être utile XHTML vs HTML

mise en page est agréable pour Whitespace l'homme à lire, mais ne fait aucune différence sur la façon dont le navigateur rend le Xhtml. En fait, l'effacement des espaces inutiles produira des fichiers légèrement plus petits.

1

Vous pouvez utiliser la Indent propriété:

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(); 
} 
+0

Ce rédigera qui fonctionne pour Xhtml mais et seulement « par co-incidence » en html –

+0

tiret également les effets que la sortie de texte, qui n'a pas d'effet sur comment le xhtml est rendu. –

+0

Je sais que je n'aurai besoin que d'un code plus lisible. Merci – Petr