ProgramatorCZ  |   Diskusní fórum  |   ASMDprojekt  |   Vtipy  |   JavaScript
Spolupracujeme:   WebGuru  |   Komplikátor  |   MinaSite Přidat k oblíbeným položkám  |   Nastavit jako výchozí stránku
Časopis
Hlavní stránka
Assembler
C,C++
Delphi
DOTNET
Flash
HTML
Java
JavaScript
Knihy
O Internetu
Pascal
PHP
Pro. programátor
Programy
Python
Tiskové zprávy

Projekty

JScript Planet
ProProjekty

Služby

Monitoring

Informace
Redakce
O časopisu
Odkazy
Nový redaktor


ISSN 1213-7359

Šéfredaktor:
Jan Sova

Zástupci šéfredaktora
Frerenzy Dawid
Krásenský David

Šéfredaktoři rubrik
Michal Chalupník
Formánek Jiří
Pavel Aleš
Sojka Zdeněk
Petr Rympler

Administrátor
Jan Sova

Naše ikonka
MinaSite
Komplikátorovy Stránky
TOPlist
GALACTICA

Časopis používá redakční systém Sova-Press.



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);

      if (vyplnenyUdaje(sJmeno, sPrijmeni, sTitul, sELO, sDenNarozeni,
                        sMesicNarozeni, sRokNarozeni))
      {
         zapisovac.WriteElementString("jmeno", sJmeno);
         zapisovac.WriteElementString("prijmeni", sPrijmeni);
         zapisovac.WriteElementString("titul", sTitul);
         zapisovac.WriteElementString("elo", sELO);
         zapisovac.WriteStartElement("datumNarozeni");
            zapisovac.WriteElementString("den", sDenNarozeni);
            zapisovac.WriteElementString("mesic", sMesicNarozeni);
            zapisovac.WriteElementString("rok", sRokNarozeni);
         zapisovac.WriteEndElement();
      }

   zapisovac.WriteEndElement();
}

Kompletní text zdrojového příkladu si můžete stáhnout zde.

V příštím pokračování se seznámíme s prací s XML pomocí třídy XmlDocument a dotazů jazyka XPath.

Autor: Anna Rývová e-mail: anna.ryvova@volny.cz web:

Příspěvky ke článku

Ke článku nejsou komentáře
Přidat komentář

Poslední ze stejné rubriky

Práce s událostmi v .NET Framework.
Práce v .NET Framework - Zástupci
Práce s XML v C# (5.) - ověřování dokumentu pomocí třídy XmlValidatingReader
Práce s XML v C# (4.) - třídy XmlDocument a dotazy jazyka XPath
Práce s XML v C# (2.) - třída XmlTextReader

Funkce ke článku
Přidat komentář

Nejnovější články
Práce s událostmi v .NET Framework. [18094]
Nová soutěž na 3D Contestu CZ [13684]
Práce v .NET Framework - Zástupci [15997]
Práce s XML v C# (5.) - ověřování dokumentu pomocí třídy XmlValidatingReader [14049]
Práce s XML v C# (4.) - třídy XmlDocument a dotazy jazyka XPath [19472]


O článku
Datum: 06.02.2004
Rubrika: DOTNET
Čtenářů: 13009
Autor: Anna Rývová

Hodnocení článku:
Znamka: 2.76
Počet známek: 2898
[1] [2] [3] [4] [5]

 


(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