Ako čítať XML zo súboru pomocou Visual C#

Preklady článku Preklady článku
ID článku: 307548 - Zobraziť produkty, ktorých sa tento článok týka.
Rozbaliť všetko | Zbaliť všetko

Na tejto stránke

Súhrn

Tento článok popisuje, ako používať XmlTextReader trieda čítať Extensible Markup Language (XML) zo súboru. XmlTextReader poskytuje priamu syntaktickú analýzu a tokenizáciu údajov XML a implementuje XML 1.0 špecifikácie, ako aj priestory názvov v špecifikácii XML od konzorcia World Wide Web Consortium (W3C). Tento článok poskytuje rýchly, tokenizovaný prúd prístup XML, skôr než pomocou objektový model ako XML Document Object Model (DOM).

Požiadavky

Nasledujúci zoznam popisuje Odporúčaný hardvér, softvér, sieťovej infraštruktúry a balíky service pack, ktoré potrebujete:
  • Microsoft Visual Studio 2005 alebo Microsoft Visual Studio .NET
Tento článok predpokladá, že ste sa oboznámili s obsahom nasledovných tém:
  • XML terminológie
  • Vytváranie a čítanie súboru XML

Ako čítať zo súboru XML

Tento príklad používa súbor s názvom Books.xml. Môžete vytvoriť vlastný súbor súbor Books.xml alebo použiť vzorový súbor, ktorý je súčasťou programu .NET Software Development Kit (SDK) QuickStarts v nasledovnom priečinku:
.NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs \Program Files\Microsoft visual Studio
Súbor Books.xml je potrebné skopírovať do priečinka \Bin\Debug, ktorý sa nachádza v priečinku, v ktorom vytvoríte tento projekt. Súbor Books.XML je tiež k dispozícii na stiahnutie. V téme "Referencie"sekcia pre download location.
  1. Spustiť Visual Studio 2005 alebo Visual Studio .NET.
  2. Vytvoriť nové Visual C# aplikácia konzoly. Budete pokračovať priamo na "Kompletný kód zoznam"oddiel alebo pokračujte v tomto postupe a zostavte aplikáciu.
  3. Uistite sa, že projekt obsahuje odkaz na zostavu System.Xml.dll .
  4. Určiť pomocou smernice na System.Xml priestor názvov tak, že nie ste povinná kvalifikovať vyhlásenia XmlTextReader neskôr v kóde. Musíte použiť pomocou smernica pred všetkými ostatnými deklaráciami.
    using System.Xml;
    					
  5. Vytvoriť inštanciu objektu XmlTextReader a vyplňte ju súborom XML. Typicky, triedy XmlTextReader sa používa, ak potrebujete získať prístup k XML ako neformátované údaje bez Réžia dom; teda triedy XmlTextReader poskytuje rýchlejší mechanizmus na čítanie XML. Trieda XmlTextReader má odlišné konštruktory na zadanie umiestnenia údajov XML. Nasledovný kód vytvára inštanciu triedy XmlTextReader a načíta súbor Books.xml. Pridať nasledujúci kód do Main postup Class1.
    XmlTextReader reader = new XmlTextReader ("books.xml");
    					
  6. Čítať prostredníctvom XML. (Upozorňujeme, že tento krok predstavuje vonkajšiu "pri" slučky a nasledujúce dva kroky ukazujú, ako použiť túto slučku na čítanie údajov XML.) Po vytvorení objektu XmlTextReader , použite metódu čítať čítať údaje XML. Metóda čítania naďalej pohybovať prostredníctvom súboru XML postupne, kým nedosiahne koniec súboru, na ktoré poukazujú čítanie metóda vracia hodnotu "False".
    while (reader.Read()) 
    {
        // Do some work here on the data.
    	Console.WriteLine(reader.Name);
    }
    Console.ReadLine();
    					
  7. Skontrolujte uzly. Spracovať údaje XML, každý záznam má typ uzla, ktorý je možné určiť z vlastnosti NodeType . Vlastnosti Name a Value vrátia Názov uzla (názvy prvkov a atribútov) a hodnotu uzla (text uzla) aktuálneho uzla (alebo záznamu). Enumerácia NodeType určuje typ uzla. Nasledovný Vzorový kód zobrazuje názov prvkov a typ dokumentu. Všimnite si, že tento vzor ignoruje atribúty prvkov.
    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. Skontrolujte atribúty. Typy uzlov prvkov môžu zahŕňať zoznam uzlov atribútov, ktoré sú s nimi spojené. MovetoNextAttribute metóda presunie postupne prechádza každým atribútom v prvku. Otestovať, či uzol má nejaké atribúty, použite vlastnosť HasAttributes . Vlastnosť AttributeCount vráti počet atribútov pre aktuálny uzol.
    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. Uložte a zatvorte projekt.

Kompletný kód zoznam

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

Ukážka výstupu

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

Riešenie problémov

Pri testovaní kód, mô?ete dosta nasledujúce chybové hlásenie výnimky: neošetrená výnimka: System.Xml.XmlException: nečakané XML deklarácia. Deklaráciou XML musia byť prvý uzol v dokumente, a nie biely priestor znaky sú povolené, aby sa dostavila.

Ďalšie informácie: systémová chyba. Dôjde k chybe výnimky na nasledujúci riadok kódu: zatiaľ čo
(reader.Read())
Výnimka chyba je spôsobená neplatný spracovanie inštrukcie. Pokyn na spracovanie môže napríklad obsahovať cudzie medzery. Nasleduje príklad spracovania neplatná inštrukcie:
<?xml version='1.0' ?>
Táto značka xml má priestor predchádzajúceho "<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the="" error.=""></’>

REFERENCIE

Nasledovný súbor je k dispozícii na prevzatie z Microsoft Download Center:
Zbaliť tento obrázokRozbaliť tento obrázok
Stiahnuť
Prevziať balík Books.exe.
Ďalšie informácie o triedach .NET Framework XML a C# nájdete na webovej lokalite webová lokalita Microsoft Developer Network (MSDN):
http://msdn.Microsoft.com/en-us/Magazine/cc302158.aspx
Ďalšie informácie o triede XmlReader nájdete na nasledujúcej webovej lokalite MSDN:
http://msdn2.Microsoft.com/en-us/library/System.xml.XmlReader (vs.71) .aspx
Ďalšie informácie o používaní XmlReader na čítanie údajov XML, navštívte nasledujúce webové MSDN stránky:
http://msdn2.Microsoft.com/en-us/library/aa720470 (VS.71) .aspx

http://msdn2.Microsoft.com/en-us/library/tfz3cz6w (vs.71) .aspx

Vlastnosti

ID článku: 307548 - Posledná kontrola: 15. novembra 2012 - Revízia: 1.0
Informácie v tomto článku sa týkajú nasledujúcich produktov:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
Kľúčové slová: 
kbdownload kbhowtomaster kbmt KB307548 KbMtsk
Strojovo preložené
DÔLEŽITÉ: Tento článok bol preložený pomocou softvéru na strojový preklad od spoločnosti Microsoft, nie prekladateľom. Spoločnosť Microsoft ponúka články preložené prekladateľmi aj strojovo preložené články, vďaka čomu máte možnosť prístupu ku všetkým článkom databázy Knowledge Base vo svojom jazyku. Strojovo preložený článok však nie je vždy perfektný. Môže obsahovať chyby týkajúce sa slovnej zásoby, syntaxe alebo gramatiky, podobne ako cudzinec môže robiť chyby, keď rozpráva vašim jazykom. Spoločnosť Microsoft nenesie zodpovednosť za akékoľvek nepresnosti, chyby alebo škody spôsobené akýmkoľvek nepresným prekladom obsahu alebo jeho použitím zo strany zákazníkov. Spoločnosť Microsoft softvér na strojový preklad pravidelne aktualizuje.
Pokiaľ chcete vidieť anglickú verziu článku, kliknite sem: 307548

Odošlite odozvu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com