Visual C# kullanarak bir dosyadan XML okuma

Ö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
Bu makalenin Microsoft Visual Basic .NET sürümü için bkz: 301225.

Bu makalede aşağıdaki Microsoft .NET Framework sınıf kitaplığı ad alanına başvurur:
  • System.Xml
Özet
Bu makalede, bir dosyadan Genişletilebilir Biçimlendirme Dili'nin (XML) okunması için XmlTextReader sınıfının nasıl kullanılacağı açıklanır. 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 belirtece dönüştürmek sağlar. Bu makale, XML'ye erişmek için XML Belge Nesnesi Modeli (DOM) gibi bir nesne modeli kullanmak yerine hızlı, parçalanmış akış erişimi sağlar.

Gereksinimleri

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

Nasıl bir dosyadan XML okuma

Bu örnek Books.xml adlı bir dosya kullanır. .NET Software Development Kit (SDK) başlangıç 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şturduğunuz klasörü 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ünde veya uygulama oluşturmak için bu adımları izleyerek.
  3. Proje 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 System.Xml ad boşluğunu 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. Tipik olarak, XML DOM yük bindirmeden ham veri olarak 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. XML dosyasıyla bu dosyanın sonuna en, "False" değerini okumak metodu döndükten işaret ulaşıncaya kadar sırayla taşımak Read yöntemini 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ğinden belirlenen bir düğüm türü vardır. Ad ve değer özellikleri (öðe ve öznitelik adları) düğüm adı ve düğüm değeri (düğüm metni) geçerli düğüm (veya kayıt) döndürür. NodeType numaralandırma düğüm türü 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. Düğümü öznitelik 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. Projeyi kaydedin ve 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 önce görünmesine izin verilir.

Ek bilgi: Sistem hatası. Aşağıdaki kod satırını özel durum hatası oluşur: iken
(reader.Read())
Özel durum hatası, bir geçersiz işlem yönergesi nedeniyle oluşur. Örneğin, işlem yönergesi gereksiz boşluklar içerebilir. Geçersiz bir 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=""></’>

BAŞVURULAR

Aşağıdaki dosya Microsoft Yükleme Merkezi'nden indirilebilir:
.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:XmlReader sınıfı hakkında daha fazla bilgi için aşağıdaki MSDN Web sitesini ziyaret edin:XmlReader , XML verilerini okumak için kullanma hakkında daha fazla bilgi için aşağıdaki MSDN Web sitelerini ziyaret edin:

Uyarı: Bu makalenin çevirisi otomatik olarak yapılmıştır

Властивості

Ідентифікатор статті: 307548 – останній перегляд: 05/07/2016 21:48:00 – виправлення: 6.0

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

  • kbdownload kbhowtomaster kbmt KB307548 KbMttr
Зворотний зв’язок