Práce s XML v C# (3.) - třída XmlTextWriter v rubrice DOTNET
V dnešním díle seriálu se naučíme vytvářet nová XML pomocí třídy XmlTextWriter.
Třídu XmlTextWriter lze použít k vytváření nových dokumentů XML od začátku. Obsahuje řadu metod pro zápis různých typů XML vč. elementů, atributů, komentářů a dalších. Nastavení vlastnosti Formatting na hodnotu Formatting.Indented před zápisem zajišťuje odsazování řádků od okraje podle úrovně vnoření. Defaultní odsazení je o 2 mezery, toto nastavení lze změnit pomocí vlastností Indentation a IndentChar.
Příklad: Napíšeme aplikaci, která vytvoří soubor hraci.xml a uloží ho na HD. Jednotlivé úrovně vnoření budou odsazovány o 3 mezery.
Vytvoření XML: XmlTextWriter zapisovac = new XmlTextWriter("hraci.xml",
System.Text.Encoding.Default);
zapisovac.Formatting = Formatting.Indented;
zapisovac.Indentation = 3;
Zápis obsahu XML: try
{
zapisovac.WriteStartDocument();
zapisovac.WriteDocType("html",
"-//W3C//DTD XHTML 1.0 Transitional//EN",
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd",
null);
zapisovac.WriteComment("XML vytvořené pomocí XmlTextWriter v C#");
zapisovac.WriteStartElement("hraci");
zapisovac.WriteStartElement("cdata");
zapisovac.WriteCData("Tohle je CDATA element\r\n" +
"
zabírající více řádek");
zapisovac.WriteEndElement();
zapisHrace(zapisovac, "korespondenční šach", "Anna", "Rývová",
"LGM", "2279", "17", "01", "1970");
zapisHrace(zapisovac, "korespondenční šach", "", "\n", null, null,
null, null, null);
zapisHrace(zapisovac, "korespondenční šach", "Josef", "Jalůvka",
null, "> 2400", null, null, "1968");
zapisovac.WriteEndElement();
zapisovac.Close(); // zapsání XML do souboru na disk a uzavření souboru
}
catch(System.Exception e)
{
Console.WriteLine("Došlo k chybě");
}
Zápis všech údajů o hráči do XML:
Procedura zjistí, zda jsou vyplněny všechny údaje. Pokud ano, vygeneruje je, pokud ne, vygeneruje jen prázdný element. private static void zapisHrace(XmlTextWriter zapisovac, String sSport,
String sJmeno, String sPrijmeni,
String sTitul, String sELO,
String sDenNarozeni, String sMesicNarozeni,
String sRokNarozeni)
{
zapisovac.WriteStartElement("hrac");
zapisovac.WriteAttributeString("sport", sSport);
(c) Systém Jan Sova, Design David Krásenský a Jan Sova Se svými dotazy či problémy se obracejte na diskusní
fórum.
Časopis je součástí projektu Programator