Momentan sunteți offline, așteptați să vă reconectați la internet

Cum să citiţi XML dintr-un fişier folosind Visual C#

IMPORTANT: Acest articol a fost tradus de software-ul de traducere automată Microsoft, si nu de un traducător. Microsoft vă oferă atât articole traduse de persoane, cât şi articole traduse automat, astfel incat aveti access la toate articolele din Baza noastră de informatii în limba dvs. materna. Totuşi, un articol tradus automat nu este întotdeauna perfect. Acesta poate conţine greşeli de vocabular, sintaxă sau gramatică, la fel cum un vorbitor străin poate face greşeli vorbind limba dvs. materna. Compania Microsoft nu este responsabilă pentru nici o inexactitate, eroare sau daună cauzată de traducerea necorespunzătoare a conţinutului sau de utilizarea traducerii necorespunzătoare de către clienţii nostri. De asemenea, Microsoft actualizează frecvent software-ul de traducere automată.

Faceți clic aici pentru a vizualiza versiunea în limba engleză a acestui articol: 307548
Pentru o versiune de Microsoft Visual Basic .NET acestui articol, consultaţi 301225.

Acest articol se referă la spațiul de Microsoft .NET Framework Class bibliotecă următoarele:
  • System.Xml
Rezumat
Acest articol descrie modul de utilizare a XmlTextReader clasa pentru a citi limbajul extensibil de marcare (XML) dintr-un fişier. XmlTextReader oferă direct parsarea şi tokenizing XML şi pune în aplicare XML 1.0 caietul de sarcini, precum şi spaţii de nume în caietul de sarcini XML la World Wide Web Consortium (W3C). Acest articol oferă acces rapid, tokenized flux XML, mai degrabă decât folosind un model obiect cum ar fi XML Document Object Model (DOM).

Cerinţele

Listă tabel următoare evidenţiază hardware recomandate, software-ul, infrastructura de reţea şi pachete de service care aveţi nevoie:
  • Microsoft Visual Studio 2005 sau Microsoft Visual Studio .NET
Acest articol presupune că sunteţi familiarizaţi cu următoarele subiecte:
  • Terminologia XML
  • Crearea şi un fişier XML de lectură

Cum să citiţi XML dintr-un fişier

Acest exemplu utilizează un fişier numit Books.xml. Creaţi fişierul de Books.xml sau utilizați fișierul eșantion care este inclusă în QuickStarts .NET Software Development Kit (SDK) în următorul folder:
\Program Files\Microsoft visual Studio .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
Trebuie să copiaţi Books.xml la folderul \Bin\Debug, care se află sub folderul în care creaţi acest proiect. Books.XML este, de asemenea, disponibil pentru download. A se vedea "Referințe"secţiunea pentru locaţia de descărcare.
  1. Începe Visual Studio 2005 sau Visual Studio .NET.
  2. Creaţi un nou Visual C# consola cerere. Proceda direct la "Completaţi codul de listare"secţiunea sau continua prin aceşti paşi pentru a construi cererii.
  3. Asiguraţi-vă că proiectul conţine o referinţă la asamblarea System.Xml.dll .
  4. Specificaţi folosind Directiva pe spațiul de nume System.Xml astfel încât nu sunt necesare pentru a se califica declaraţiile XmlTextReader mai târziu în codul. Trebuie să utilizaţi folosind Directiva înainte de orice alte declaraţii.
    using System.Xml;					
  5. Creează o instanţă a unui obiect de XmlTextReader , şi se populează cu fișierul XML. De obicei, clasa XmlTextReader este utilizat în cazul în care aveţi nevoie pentru a accesa XML ca date brute fără aeriene de un DOM; astfel, clasa XmlTextReader oferă un mecanism rapid de lectură XML. XmlTextReader clasa a constructorilor diferite pentru a specifica locaţia datele XML. Următorul cod creează o instanţă a clasei XmlTextReader şi încarcă fişierul Books.xml. Adăugaţi următorul cod la procedura principală de Class1.
    XmlTextReader reader = new XmlTextReader ("books.xml");					
  6. Citi prin intermediul XML. (Reţineţi că acest pas demonstrează un exterior "în marcă de timp ce" buclă, şi următorii doi pași demonstra modul de utilizare că bucla să citească XML.) După crearea obiectului XmlTextReader , utilizaţi metoda de citire pentru a citi datele XML. Metoda Read Urmărire să se deplaseze prin fişierul XML secvenţial până când ajunge la sfârşitul fişierului, la care punctul citi metoda întoarce valoarea "False."
    while (reader.Read()) {    // Do some work here on the data.	Console.WriteLine(reader.Name);}Console.ReadLine();					
  7. Inspectaţi noduri. Pentru a procesa datele XML, fiecare înregistrare are un tip de nodul care poate fi determinată de proprietate NodeType . Proprietăţi nume de sign-in şi valoarea reveni node nume (nume element si atribut) şi valoarea de nod (nod text) de nodul curent (sau înregistrare). Enumerare NodeType determină tipul de nod. Următoarele exemple de cod afişează nume de sign-in elementelor şi tip de document. Reţineţi că acest eşantion ignoră elementul atribute.
    while (reader.Read()) {    switch (reader.NodeType)     {        case XmlNodeType.Element: // The node is an element.            Console.Write("<" + reader.Name);   Console.WriteLine(">");            break;  case XmlNodeType.Text: //Display the text in each element.            Console.WriteLine (reader.Value);            break;  case XmlNodeType. EndElement: //Display the end of the element.            Console.Write("</" + reader.Name);   Console.WriteLine(">");            break;    }}					
  8. Inspectaţi atributele. Tipuri de nod elemente pot include o listă de noduri de atribut care sunt asociate cu acestea. Metoda MovetoNextAttribute se mută secvenţial prin fiecare atribut în elementul. Utilizaţi proprietatea HasAttributes pentru a testa dacă nodul are orice atribute. Proprietatea AttributeCount întoarce numărul de atribute pentru nodul curent.
    while (reader.Read()) {       switch (reader.NodeType)        {           case XmlNodeType.Element: // The node is an element.               Console.Write("<" + reader.Name);               while (reader.MoveToNextAttribute()) // Read the attributes.                   Console.Write(" " + reader.Name + "='" + reader.Value + "'");      Console.WriteLine(">");               break;     case XmlNodeType.Text: //Display the text in each element.               Console.WriteLine (reader.Value);               break;     case XmlNodeType. EndElement: //Display the end of the element.               Console.Write("</" + reader.Name);      Console.WriteLine(">");               break;       }   }					
  9. Salvaţi şi închideţi proiectul dumneavoastră.

Completaţi codul de listare

using System;using System.Xml;namespace ReadXMLfromFile{    /// <summary>    /// Summary description for Class1.    /// </summary>    class Class1    {        static void Main(string[] args)        {            XmlTextReader reader = new XmlTextReader ("books.xml");            while (reader.Read())             {                switch (reader.NodeType)                 {                    case XmlNodeType.Element: // The node is an element.                        Console.Write("<" + reader.Name);                        Console.WriteLine(">");                        break;                    case XmlNodeType.Text: //Display the text in each element.                        Console.WriteLine (reader.Value);                        break;                    case XmlNodeType.EndElement: //Display the end of the element.                        Console.Write("</" + reader.Name);                        Console.WriteLine(">");                        break;                }            }            Console.ReadLine();        }    }}				

Mostră de ieşire

<bookstore><book><title>The Autobiography of Benjamin Franklin</title><author><first-name>Benjamin</first-name><last-name>Franklin</last-name></author><price>8.99</price></book><book><title>The Confidence Man</title><author><first-name>Herman</first-name><last-name>Melville</last-name></author><price>11.99</price></book><book><title>The Gorgias</title><author><name>Plato</name></author><price>9.99</price></book></bookstore>				

Rezolvarea problemelor

Când test cod, este posibil să primiţi următorul mesaj de eroare de excepţie: excepție netratată: System.Xml.XmlException: declarație XML neașteptat. Declaratia XML trebuie să fie primul nod în document, şi nici un spaţiu alb de caractere sunt permise să apară înainte de a fi.

Informaţii suplimentare: eroare de sistem. De eroare de excepţie apare pe următoarea linia Către de cod: în marcă de timp ce
(reader.Read())
De eroare de excepţie este cauzată de o instrucțiune de procesare nevalidă. De exemplu, instrucţiune de prelucrare pot conţine spaţii străine. Următorul este un exemplu de o instrucțiune de procesare nevalid:
<?xml version='1.0' ?>
Această etichetă xml are un spaţiu precedent "<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the="" error.=""></’>

REFERINȚE

Fişierul următor este disponibil pentru descărcare de la Microsoft Download Center:
Pentru mai multe informaţii despre clase .NET Framework XML şi C#, vizitaţi următorul site Web Reţea Microsoft pentru dezvoltatori (MSDN):Pentru mai multe informaţii despre clasa XmlReader , vizitaţi următorul site MSDN Web:Pentru mai multe informaţii despre utilizarea XmlReader pentru a citi date XML, vizitaţi următorul site MSDN Web:

Avertisment: acest articol a fost tradus automat

Proprietăți

ID articol: 307548 - Ultima examinare: 11/15/2012 02:49:00 - Revizie: 1.0

Microsoft Visual C# 2008 Express Edition, Microsoft Visual C# 2005, Microsoft Visual C# .NET 2002 Standard Edition

  • kbdownload kbhowtomaster kbmt KB307548 KbMtro
Feedback
ementsByTagName("head")[0].appendChild(m);