• Acasă
  • Despre noi
  • Autori
  • Mărturii
  • Arhivă
  • Trimite Articol
  • Contact

WORLDIT

Lumea în 1 și 0.

  • Știri
    • Tehnologie
    • Tehnologie mobilă
    • Securitate
    • Developers
    • Știință
    • Benzi desenate
    • Jocuri
    • Intern
  • Tehnic
    • Browser
    • C#
    • C/C++
    • Challenge
    • HTML/CSS
    • Javascript, Ajax, jQuery
    • Open Source
    • PHP
    • Python
    • Securitate IT
    • Socializare
    • WordPress
    • Altele
  • Recenzii
  • Interviuri
  • Evenimente

Cum sa lucram cu XML in C#?

9
  • Publicat de Hurmuz Gheorghita
  • în C#
  • — 24 mart., 2010 at 8:00 am

XML este un metalimbaj utilizat pentru descrierea datelor. Este un limbaj foarte folositor (alternativ) pentru organizarea datelor.
Unde il putem folosi? La aceasta intrebare exista o multime de raspunsuri dar cel mai simplu este www. Cu ajutorul XML-ului poti crea un music player, un slideshow, un mic blog , RSS etc.
XML este foarte indragit deoarece nu iti ia mult timp pentru a-l invata (doar baza). De ce aceasta usurinta? Pentru ca nu trebuie sa invatati decat cateva reguli : tot ce se deschide la sfarsit se inchide si exista un parinte si fiii. Andrei a mai discutat despre XML pana acum asa ca banuiesc ca nu este foarte nefamiliar.

<?xml version="1.0" encoding="utf-8"?>
<limbaje>			<!--parintele principal -->
	<limbaj>		<!—parinte pentru nume si autor, dar copil pentru limbaje-->
		<nume>XML</nume>
		<autor>W3C</autor>
	</limbaj>
	<limbaj>
		<nume>C++</nume>
		<autor>Bjarne Stroustrup</autor>
	</limnaj>
</limbaje>

Cam asa arata un document XML in general. Pe prima linie se afla declaratia xml, iar pe urmatoarele linii sunt tagurile definite de utilizator respectand regulile spuse mai sus. Pe langa elementele din exemplu de mai sus intr-un fisier se pot intalni si atribute.

C# ofera programatorilor clase cu care sa lucreze cu XML intr-un mod foarte usor. Eu am sa va prezint doar clasele XmlTextWriter si XmlTextReader.
Pentru a lucra cu aceste clase trebuie sa adaugam in randul directivelor System.Xml.

XmlTextWriter

Clasa XmlTextWriter ofera posibilitatea de a scrie un fisier xml.


....
using System.Xml;

...
  	private void Form1_Load(object sender, EventArgs e)
        {
            XmlTextWriter writer = new XmlTextWriter("fisier.xml", null);

            writer.WriteStartDocument();

            writer.WriteStartElement("salut");
            writer.WriteStartElement("altceva");
            writer.WriteAttributeString("atribut", "aval");
            writer.WriteString("valoarea2");
            writer.WriteEndElement();

            writer.WriteStartElement("buna");
            writer.WriteString("aaaaaaaa");
            writer.WriteEndElement();

            writer.WriteEndElement();

            writer.WriteEndDocument();
            writer.Close();
  }

Constructorul clasei XmlTextWriter are 2 parametrii: numele fisierului xml (cale absoluta sau relativa), parametrul de specificare al codificarii (daca este utf-8 atunci transmitem null).
Pentru declararea declaratiei xml a fisierului folosim metoda WriteStartDocument(). Ca sa respectam regula deschidere-inchidere, la sfarsit, cand terminam cu scrierem folosim metoda WriteEndDocument(). Vazand aceasta explicatie si de listingul de mai sus cred ca v-ati prins de smen.
Pentru scrierea unui elemen folosim :

(XmlTextWriter obw=new XmlTextWriter("nume.xml.",null))
obw.WriteStartElement("numeletagului")  // (<numeletagului>)
obw.WriteString("valoare")                            //(<numeletagului>valoare)
obw.WriteEndElement()                                  //(<numeletagului>valoare</numeletagului>)

Acest stil de lucru este echivalent cu

obw.WriteElementString("numeletagului","valoare")

In clasa XmlTextWriter mai exista si WriteComment(string comment) (plaseaza un comentariu in fisierul xml <!– comentariu –> ), WriteAttributeString(string name,string value) (adauga un atribut elementului curent , acesta metoda se foloseste cu ajutorul primului mod de a scrie un element intr-un fisier),s.a. La sfarsitul muncii inchidem fluxul cu ajutorul metodei Close() pentru a elibara memoria.

XmlTextReader

Aceasta clasa este folositoare citirii elementelor dintr-un fisier XML. Modul de lucru este asemenea celui de la scriere.
XmlTextReader reader= new XmlTextReader(string name);
Metoda Read() citeste nodurile dintr-un document XML pe rand. Din cauza ca citeste fiecare nod trebuie sa selectam tipul acestuia (element, atribut, text, etc.). Pentru aceasta folosim proprietatea NodeType si enumerarea XmlNodeType care contine urmatorii membrii (usor de tinut minte): Element, Text, Comment, EndElement, Attribute.

while(reader.Read())
{
	switch(reader.NodeType)
	{
		case XmlNodeType.Element:  ...
	}
}

XmlDocument

Cel mai simplu mod de manevrare a fisierelor XML este folosirea clasei XmlDocument.

XmlDocument doc=new XmlDocument();
doc.Load("numefisier.xml");
XmlNodeList nod= doc.SelectNodes("parinte/copil");
for(int i=0;i<nod.Counts;i++)
{
	Console.Write(nod.Item(i).SelectSingleNode("numenod").InnetText+"\n");
}

Etichete: baza de dateC++csharpdespre XmlDocument din C#obiectXMLXmlTextReader in C#XmlTextWriter in C#

— Hurmuz Gheorghita a scris 3 articole

Nu există o descriere a autorului.

  • Articolul anterior IT Fest 2010, Timisoara – impresii
  • Articolul următor Twitter a redus spamul la 1%

9 Comentarii

  1. Tweets that mention Cum sa lucram cu XML in C#? | WorldIT -- Topsy.com spune:
    martie 24, 2010 la 10:42 am

    […] This post was mentioned on Twitter by Andrei Avadanei and Avadanei Andrei, Andrei Avadanei. Andrei Avadanei said: RT @worldIT Cum sa lucram cu XML in C#? http://goo.gl/fb/HMBi #WorldIT […]

  2. Condurache Bogdan spune:
    martie 24, 2010 la 2:53 pm

    Foarte interesant articolul. Dar ai o greseala „si exista un parinti si fii”

  3. Andrey spune:
    martie 24, 2010 la 2:54 pm

    Daca ai mai putea insista oleaca pe navigarea prin fisierul xml ar fi superb 😀

  4. Hurmuz Gheorghita spune:
    martie 24, 2010 la 9:11 pm

    Am observat si eu greseala. Imi cer scuze!!!
    Andrey, navigarea prin fisierul xml se face ca in exemplul dat de mine la clasa XmlTextReader . (daca nu reusesti, anunta-ma si voi publica un cod sursa cu comentari pentru a vedea la ce ma refer)

  5. Andrey spune:
    martie 24, 2010 la 11:28 pm

    Nu ca nu inteleg, ci ca si completare :))

  6. Tweets that mention Cum sa lucram cu XML in C#? | WorldIT -- Topsy.com spune:
    martie 25, 2010 la 7:23 pm

    […] This post was mentioned on Twitter by Bogdan Condurache. Bogdan Condurache said: Cum sa lucram cu XML in C#? – http://b2l.me/k26w6 (via @worldIT) […]

  7. scriptosu spune:
    iunie 24, 2011 la 2:52 am

    Multumesc frumos,
    aveam de imporatat un xml de 300mb si load xml din mysql tinea cam 4 ore..
    am folosit metoda clasica cu XmlDocument si acum imi ia 2 minute:D
    tx

  8. scriptosu spune:
    iunie 24, 2011 la 2:54 am

    revin si intreb, nu ai putea defini o clasa pentru fiecare rand din nodul XML si sa faci un foreach (clasa DB in nod) si sa le accesezi mai stilat? am sa incerc si daca reusesc te anunt.

  9. Nicoara Dan spune:
    octombrie 13, 2011 la 2:49 pm

    Puteti trata si subiectul LINQ to XML.


  • Facebook

    WorldIT.info
  • Ultimele Atacuri Cibernetice din Romania – RO Hacked

    [wp_rss_retriever url="https://rohacked.bit-sentinel.com/feed/" excerpt="none" items="5" read_more="false" new_window="true" thumbnail="false" cache="0"] RO Hacked este registrul atacurilor cibernetice din România.
  • Caută

  • Articole Recomandate

    • Recent Posts
    • Tags
    • Număr record de participanți la DefCamp 2015, cel mai important eveniment dedicat securității cibernetice din Europe Centrala si de Estdecembrie 2, 2015
    • La DefCamp 2015 vei afla prin ce tehnici pot fi evitate măsurile de securitate ale sistemelor informatice criticeoctombrie 16, 2015
    • Ultima sansa sa rezervi bilete de tip Early Bird la DefCamp 2015septembrie 1, 2015
    • 15 sfaturi despre cum poti deveni un programator bun venite de la specialisti romaniaugust 4, 2015
    • algoritmica Android antivirus Apple Avadanei Andrei benzi desenate BitDefender blog browser C++ Chrome concurs eveniment Facebook Firefox Google google chrome hacking html5 infografic informatica internet Internet Explorer IT javascript linux Microsoft Mozilla Firefox online PHP programare retea sociala review Romania securitate Tehnologie Twitter web Windows Windows 7 Wordpress WorldIT worldit.info Yahoo! YouTube
  • februarie 2021
    L Ma Mi J V S D
    1234567
    891011121314
    15161718192021
    22232425262728
    « dec.    
  • Link-uri Sponsorizate

    • laptop second hand

    • Calculatoare Second Hand

    • cod voucher pc garage

  • Home
  • Tehnic
  • C#
  • Cum sa lucram cu XML in C#?
  • Important

    • Bit Sentinel
    • Centrul de Cercetare în Securitate Informatică din România
    • DefCamp
  • Prieteni

    • BetiT.ro
    • bijuterii handmade
    • Computerica | Resurse gratuite PC
    • Descopera.org
    • Gadgeturi si IT – Giz.ro
  • Prieteni

    • PC – Config
    • RO Hacked
    • Stiri IT

Copyright © 2009-2014 WORLDIT. Toate drepturile Rezervate.
Termeni și condiții | Contact | Licența Creative Commons