Visual C# kullanarak bir dosyadan XML okuma

Makale çevirileri Makale çevirileri
Makale numarası: 307548 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Bu makalede XmlTextReader sınıfı Genişletilebilir Biçimlendirme Dili (XML) dosyadan okumak için nasıl kullanılacağını açıklar. XmlTextReader doğrudan ayrıştırma ve World Wide Web Consortium (W3C) XML belirtiminden boşluklarında yanı sıra XML ve uygulayan XML 1.0 belirtimine tokenizing sağlar. Bu makale, XML XML Belge Nesnesi Modeli (DOM) gibi bir nesne modelini kullanarak daha hızlı, simgele?tirilmi? akış erişim sağlar.

Gereksinimler

Aşağıdaki listede önerilen donanım, yazılım, ağ altyapısı ve gereken hizmet paketleri yer almaktadır:
  • Microsoft Visual Studio 2005 veya Microsoft Visual Studio .NET
Bu makalede şu konularda bilgi sahibi olduğunuz varsayılmaktadır:
  • XML terimleri
  • XML dosyası oluşturabilmek ve okuyabilmek

Bir dosyadan XML okuma

Bu örnek, Books.xml adlı bir dosyayı kullanır. .NET Software Development Kit (SDK) hızlı başlangıç ipuçları aşağıdaki klasörde bulunan örnek dosya kullanın ya da kendi Books.xml dosyası oluşturun:
\Program visual Studio .NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
Books.xml bu proje Oluştur klasörünün altında bulunan \Bin\Debug klasörünü kopyalamanız gerekir. Books.XML de karşıdan yüklenebilir. Bkz: "Başvurular"bölümündeki karşıdan yükleme konumu için.
  1. Visual Studio 2005 veya Visual Studio .NET başlatın.
  2. Yeni bir Visual C# konsol uygulaması oluşturun. Doğrudan devam "Tam kod listesi"bölümüne veya uygulama oluşturmak için bu adımları izleyerek.
  3. Projenin System.Xml.dll derlemesine bir başvuru içerdiğinden emin olun.
  4. Daha sonra kodunuzda bildirimleri XmlTextReader nitelemek gerekmez böylece kullanma yönergesi üzerinde System.Xml ad alanı belirtin. Kullanma yönergesi tüm diğer bildirimlerden önce kullanmalısınız.
    using System.Xml;
    					
  5. XmlTextReader nesnesini bir örneğini oluşturmak ve XML dosyası ile doldurun. Genellikle, bir DOM yük bindirmeden ham veri olarak XML erişmeniz gerekiyorsa XmlTextReader sınıfı kullanılır; Bu nedenle XmlTextReader sınıfı XML okumak için daha hızlı bir mekanizma sağlar. XML verilerini konumunu belirtmek için farklı oluşturucular XmlTextReader sınıfı vardır. Aşağıdaki kod XmlTextReader sınıfı örneğini oluşturur ve Books.xml dosyası yükler. Class1 ana yordamına aşağıdaki kodu ekleyin.
    XmlTextReader reader = new XmlTextReader ("books.xml");
    					
  6. XML ile okuyun. (Bu adımı dış "while" döngüsünü gösterir ve sonraki iki adımı bu döngü XML okumak için nasıl kullanılacağını gösteren unutmayın.) XmlTextReader nesnesini oluşturduktan sonra XML verilerini okumak için Read yöntemini kullanın. Read yöntemi, dosyanın sonuna, en, "False" değerini okumak metodu döndükten işaret ulaşıncaya kadar XML dosyası aracılığıyla sırayla hareket etmeye devam eder
    while (reader.Read()) 
    {
        // Do some work here on the data.
    	Console.WriteLine(reader.Name);
    }
    Console.ReadLine();
    					
  7. Düğümleri inceleyin. XML verilerini işlemek için her kaydın NodeType özelliğine göre belirlenen bir düğüm türü vardır. Ad ve değer özellikleri (ö?e ve öznitelik adları) düğüm adı ve düğüm değerini (düğüm metni) geçerli düğüm (veya kayıt) döndürür. NodeType numaralandırma düğüm türünü belirler. Aşağıdaki örnek kod öğeleri ve belge türünün adını görüntüler. Not Bu örnek öğe öznitelikleri yoksayar.
    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. Özniteliklerini inceleyin. Öğe düğümü türleri, bunlarla ilişkili öznitelik düğümleri listesini içerebilir. MovetoNextAttribute yöntemi her öğesinde özniteliği aracılığıyla sırayla taşır. Her öznitelik düğümü olup olmadığını sınamak için HasAttributes özelliğini kullanın. AttributeCount özelliği geçerli düğümün özniteliklerini döndürür.
    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. Kaydet ve projeyi kapatın.

Tam kod listesi

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

Örnek Çıktı

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

Sorun giderme

Kod test ettiğinizde, aşağıdaki özel durum hata iletisi alabilirsiniz: işlenmeyen özel durum: System.Xml.XmlException: Beklenmeyen XML bildirimi. XML bildirimi belgedeki ilk düğüm olmalıdır ve herhangi bir beyaz boşluk karakter daha önce bulunmasına izin verilmez.

Ek bilgi: Sistem hatası. Aşağıdaki kod satırı özel durum hatası oluşur: iken
(reader.Read())
Geçersiz işlem yönergesi tarafından özel durum hatası nedeniyle oluşur. Örneğin, işlem yönergesi gereksiz boşluklar içerebilir. Geçersiz işlem yönergesi örneği aşağıdadır:
<?xml version='1.0' ?>
Bu xml etiketi önceki boşluk var '<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the=""></’>

REFERANSLAR

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden yüklenebilir:
Bu resmi kapatBu resmi aç
Karşıdan yükleme
Books.exe paketini şimdi karşıdan yükle.
.NET Framework XML sınıfları ve C# hakkında daha fazla bilgi için aşağıdaki Microsoft Developer Network (MSDN) Web sitesini ziyaret edin:
http://msdn.microsoft.com/en-us/Magazine/cc302158.aspx
XmlReader sınıfı hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/System.xml.XmlReader (vs.71).aspx
XmlReader XML verilerini okumak için nasıl kullanılacağı hakkında daha fazla bilgi için aşağıdaki MSDN Web sitelerini ziyaret edin:
http://msdn2.microsoft.com/en-us/library/aa720470 (VS.71).aspx

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

Özellikler

Makale numarası: 307548 - Last Review: 3 Mart 2014 Pazartesi - Gözden geçirme: 4.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# 2005
  • Microsoft Visual C# .NET 2002 Standard Edition
Anahtar Kelimeler: 
kbdownload kbhowtomaster kbmt KB307548 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, Microsoft Makine Çevirisi Düzenleme yazılımı tarafından tercüme edilmiş olup, yüksek olasılıkla profesyonel bir çevirmen yerine CTF teknolojisi kullanılarak, Microsoft Topluluğu tarafından düzenlenmiştir. Microsoft, Bilgi Bankamız içindeki tüm makaleleri kendi dilinizde okuyabilmeniz için size hem profesyonel çevirmenler tarafından tercüme edilen hem de makine tarafından tercüme edildikten sonra Topluluk tarafından kontrol edilen makaleler sunar. Bununla birlikte, makine tarafından tercüme edilen, hatta Topluluk tarafından kontrol edilen bir makale bile her zaman mükemmel dil kalitesinde olmayabilir. Makalede dilinizi konuşan yabancı birisinin yapabileceği türden sözcük, söz dizimi veya dilbilgisi hataları bulunabilir. Microsoft, içeriğin hatalı tercümesinin veya müşterilerimiz tarafından kullanımının doğurabileceği olası yanlış anlamalar, hatalar veya zararlardan sorumlu değildir. Öte yandan Microsoft, Makine Çevirisi Düzenleme işlemini geliştirmek amacıyla Makine Çevirisi Düzenleme yazılımını ve araçlarını sık sık güncelleştirmektedir.
Makalenin İngilizcesi aşağıdaki gibidir: 307548

Geri Bildirim Ver

 

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