Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: Giovanna 26. 03. 2015, 00:06:27

Název: Parsování XML souboru v .NET
Přispěvatel: Giovanna 26. 03. 2015, 00:06:27
Dobry den,

mam soubor xml, který by se dal prirovnat asi k následujícímu:

Kód: [Vybrat]
<DokumentRoot>   
   <Trida Nazev="1A">
      <Student Pohlavi="Zak" Jmeno="Petr Zach" Profesor="Jiri Mach"/>
      <Student Pohlavi="Zakyne" Jmeno="Anna Cechova" Profesor="Marie Sebestova"/>
      ....
      ....
   </Trida>

   <Trida Nazev="8B">
      <Student Pohlavi ............. />
      ....
      ....
   </Trida>
</DokumentRoot>

Premyslel jsem, jaky vhodny způsob zvolit k vyparsovani celého souboru do pametovych struktur, ale narazil jsem na nedostatek zkusenosti. Když to stejne cele musim projit, je chybou pouzit XmlReader? Nemusite za me psat kod, ale zkousel jsem pro ladeni a testovani:

Kód: [Vybrat]
using (XmlReader reader = XmlReader.Create("Skola.xml"))
{
reader.ReadStartElement("DokumentRoot");

while ( reader.Read() )
{
if (reader.IsStartElement())
{
if (reader.Name == "Trida")
{
Console.WriteLine(reader.Name + ": " + reader["Nazev"]);

}
}
}

Console.ReadLine();
}

Co teda ale nevim, chybi mi tu objektovy pristup. Mozna bych mohl pridavat studenty do kolekce nez narazim na další element Trida, ale dela se to tak, nevite?
Název: Re:.NET XML - parsování souboru s jasnou strukturou
Přispěvatel: Kolemjdoucí 26. 03. 2015, 00:34:23
Parsování XML je dávno hotovo a dělá se to nějak takhle: http://www.doublecloud.org/2013/08/parsing-xml-in-c-a-quick-working-sample/
Objektový přístup na parsování XML tak nějak není potřeba.
Název: Re:.NET XML - parsování souboru s jasnou strukturou
Přispěvatel: Giovanna 26. 03. 2015, 02:09:16
Tohle uz chápu, poradite mi ještě, jak zmenit například jmeno profesora, jak k tomu pristoupit? Samozrejme uz ted diky.
Název: Re:.NET XML - parsování souboru s jasnou strukturou
Přispěvatel: pupi1 26. 03. 2015, 07:44:55
tak mozes vyuzit linq to xml, ktory ti ulahci pracu. alebo to mozes spravit tak, ze si spravis objekt, ktory ale musi sediet s danym a XML  nasledne zdeserializujes. dostanes objekt naplneny datami xml. potom uz mozes zmenit co chces.
Název: Re:.NET XML - parsování souboru s jasnou strukturou
Přispěvatel: mon 26. 03. 2015, 07:55:17
XmlReader sa pouziva len pre velke subory alebo ked chces nieco velmi rychlo precitat.

Este by som ti dal do pozornosti Linq to XML. Lahsie sa to pise (http://www.codeproject.com/Articles/42336/An-Introduction-to-LINQ-to-XML), je to rychlejsie a menej pamatovo narocne (http://www.31a2ba2a-b718-11dc-8314-0800200c9a66.com/2010/02/some-hard-numbers-about-xmldocument.html) a navyse sa da napojit pre priebezne spracovanie na XmlReader (http://james.newtonking.com/archive/2007/12/11/linq-to-xml-over-large-documents)

Ak chces stal pouzivat xmlreader tak pouzivaj aj hladanie ukoncovacieho tagu, pri otvaracom zacnes citat zoznam studentov pri ukoncovacom skoncis.

Cez xmlreader nespravis zmeny, ale mozes si sam vyskladat xml pocas prechadzania povodneho xml.