كيفية قراءة بيانات XML من دفق في .NET Framework SDK

هام: تمت ترجمة هذا المقال باستخدام برنامج ترجمة آلية لشركة مايكروسوفت بدلاً من الاستعانة بمترجم بشري. تقدم شركة مايكروسوفت كلاً من المقالات المترجمة بواسطة المترجمين البشر والمقالات المترجمة آليًا وبالتالي ستتمكن من الوصول إلى كل المقالات الموجودة في قاعدة المعرفة الخاصة بنا وباللغة الخاصة بك. بالرغم من ذلك، فإن المقالة المترجمة آليًا لا تكون دقيقة دائمًا وقد تحتوي على أخطاء إملائية أو لغوية أو نحوية، مثل تلك الأخطاء الصادرة عن متحدث أجنبي عندما يتحدث بلغتك. لا تتحمل شركة مايكروسوفت مسئولية عدم الدقة أو الأخطاء أو الضرر الناتج عن أية أخطاء في ترجمة المحتوى أو استخدامه من قبل عملائنا. تعمل شركة مايكروسوفت باستمرار على ترقية برنامج الترجمة الآلية

اضغط هنا لرابط المقالة باللغة الانجليزية301228
تمت أرشفة هذه المقالة. وتظهر "كما هي" ولن يتم تحديثها بعد الآن.
تشير هذه المقالة إلى مساحات أسماء Microsoft .NET Framework فئة مكتبة التالية:
  • System.Xml
  • System.IO

في هذه المهمة

الموجز
توضح هذه المقالة كيفية استخدام فئة XmlTextReader لقراءة لغة التوصيف الموسعة (XML) من دفق. يمكن أن تأتي الدفق من مجموعة متنوعة من مصادر مثل دفق بايت من ملقم ملف أو فئة TextReader.

back to the top

متطلبات

توضح القائمة التالية الأجهزة الموصى بها برامج البنية الأساسية للشبكة و حزم الخدمات يجب:
  • Microsoft Windows 2000 Professional, Windows 2000 Server Windows 2000 متقدمة ملقم أو ملقم Windows NT 4.0
  • Microsoft Visual Studio .NET
تفترض هذه المقالة كنت معتاداً على المواضيع التالية:
  • المصطلحات XML
  • إنشاء وقراءة XML

كيفية قراءة بيانات XML من دفق

  1. افتح Visual Studio .NET.
  2. إنشاء جديد Microsoft Visual Basic (VB) أو Microsoft Visual C# وحدة التحكم التطبيق.

    ملاحظة: الخطوات التالية توفر وصف مفصل كيفية إنشاء التطبيق. يمكنك أيضاً الانتقال مباشرة إلى الخطوة 10, حيث يتم توفير رمز المكتملة.
  3. تأكد من أن يحتوي المشروع على مرجع إلى مساحة الاسم System.Xml و System.IO.
  4. استخدم عبارة الاستيراد على مساحة اسم Xml بحيث غير مطلوبة تأهيل تعريفات XmlTextReader في مساحة اسم ذلك فيما بعد في التعليمات البرمجية الخاصة بك. يجب عليك استخدام العبارة استيراد قبل أي التعريفات الأخرى كما يلي:
    التعليمات البرمجية Visual Basic .NET
    Imports System.XmlImports System.IO						
    Visual C# code
    using System.Xml;using System.IO;						
  5. إنشاء أو استرداد دفق XML. دفق هو تمثيل مجردة من إدخال أو إخراج الجهاز الذي يعد المصدر أو وجهة لـ البيانات (في هذه الحالة، بيانات XML). يمكن الكتابة إلى و القراءة من دفق أفضل يتم visualized مثل تدفق بايت.

    يتم استخدام تدفقات توفر استقلال من الجهاز ولذلك تتطلب أي تغييرات البرنامج إذا على سبيل المثال، تغيير مصدر دفق. هناك عدة طرق مختلفة لإنشاء دفق لفئة XmlTextReader. حدد أحد نماذج التعليمة البرمجية التالية لإضافة الإجراء الرئيسي الوحدة النمطية الافتراضية:
    • نموذج التعليمات البرمجية التي تستخدم كائن StringReader:

      كائن StringReader يقرأ الأحرف من سلاسل ويأخذ في قيمة سلسلة أثناء الإنشاء. Visual Basic .NET رمز
      Dim stream as System.IO.StringReaderstream = new StringReader("<?xml version='1.0'?>" & _"<!-- This file is a book store inventory. -->" & _"<bookstore>" & _" <book genre=""autobiography"" ISBN=""1-861003-11-0"">" & _"   <title>The Autobiography of Benjamin Franklin</title>" & _"   <author>" & _"       <first-name>Benjamin</first-name>" & _"       <last-name>Franklin</last-name>" & _"   </author>" & _"   <price>8.99</price>" & _" </book>" & _"</bookstore>")						
      C# رمز
      StringReader stream;stream = new StringReader("<?xml version='1.0'?>" +	"<!-- This file represents a fragment of a book store inventory database. -->" +	"<bookstore>" +	" <book genre=\"autobiography\" publicationdate=\"1981\" ISBN=\"1-861003-11-0\">" +	"   <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 genre=\"novel\" publicationdate=\"1967\" ISBN=\"0-201-63361-2\">" +	"   <title>The Confidence Man</title>" +	"   <author>" +	"       <first-name>Herman</first-name>" +	"       <last-name>Melville</last-name>" +	"   </author>" +	"   <price>11.99</price>" +	" </book>" +	"  <book genre=\"philosophy\" publicationdate=\"1991\" ISBN=\"1-861001-57-6\">" +	"   <title>The Gorgias</title>" +	"   <author>" +	"       <name>Plato</name>" +	"   </author>" +	"   <price>9.99</price>" +	" </book>" +	"</bookstore>");						
    • نموذج التعليمات البرمجية التي تستخدم كائن StreamReader:

      يتم استخدام كائن StreamReader قراءة الأحرف من الملفات. يقرأ في اسم الملف لقراءة أثناء الإنشاء: Visual Basic .NET رمز
      Dim stream as System.IO.StreamReader' Loads the XML data in the file books.xml in a new stream.stream = New StreamReader ("books.xml")						
      C# رمز
      System.IO.StreamReader stream = new System.IO.StreamReader ("books.xml");						
      الملاحظات استخدام الملف Books.xml هنا. يمكنك إنشاء ملف Books.xml الخاصة بك. أيضاً يتم شحنها نموذج للملف Books.xml مع .Net Visual Studio و .Net Framework SDK.

  6. إنشاء مثيل لفئة XmlTextReader مع الدفق. بشكل عام، يتم استخدام XmlTextReader إذا كنت تحتاج الوصول إلى XML مثل البيانات الخام بدون الزائد من طراز كائن المستند "(DOM); لذلك، XmlTextReader توفر آلية أسرع قراءة XML. لقد XmlTextReader المُنشئات مختلفة لتحديد موقع XML البيانات. تحميل التعليمة البرمجية التالية XmlTextReader من دفق:
    رمز .NET Visual Basic
    Dim reader As XmlTextReader = New XmlTextReader (stream)						
    C# Code
    XmlTextReader reader = null;	reader = new XmlTextReader (stream);						
  7. قراءة XML. بمجرد تحميل, ينفذ القراءة تسلسلي لنقل عبر بيانات XML XmlTextReader ثم يستخدم الأسلوب قراءة للحصول على السجل التالي. تقوم بإرجاع خطأ إذا كانت هناك سجلات لا.
    رمز .NET Visual Basic
    Do While (reader.Read())    ' Do some work here on the data.    Console.WriteLine(reader.Name)Loop' Reading of the XML file has finished.Console.ReadLine() 'Pause						
    C# Code
    while (reader.Read()) {    // Do some work here on the data.    ...}while (reader.Read()) {    // Do some work here on the data.	Console.WriteLine(reader.Name);}Console.ReadLine();						
  8. فحص العقد. لمعالجة بيانات XML يحتوي كل سجل نوع العقدة، يمكن تحديد من الخاصية NodeType. تُرجع الخصائص Name و القيمة اسم العقدة (أسماء عنصر و سمة) و قيمة عقدة (نص عقدة) العقدة الحالية (أو سجل). تعداد NodeType يحدد نوع عقدة. يعرض المثال التالي اسم العناصر "و" نوع المستند. لاحظ أن هذا المثال يتجاهل سمات عنصر.
    رمز .NET Visual Basic
    Do While (reader.Read())Select Case reader.NodeTypeCase XmlNodeType.Element 'Display beginning of element.Console.Write("<" + reader.Name)Console.WriteLine(">")Case XmlNodeType.Text 'Display the text in each element.Console.WriteLine(reader.Value)Case XmlNodeType.EndElement 'Display end of element.Console.Write("</" + reader.Name)Console.WriteLine(">")End SelectLoop						
    C# Code
    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 end of element.            Console.Write("</" + reader.Name);   Console.WriteLine(">");            break;    }}						
  9. فحص السمات. يمكن أن تتضمن أنواع عقدة عنصر قائمة العقد السمة المقترنة بها. نقل أسلوب MovetoNextAttribute بالتسلسل خلال لكل سمة في العنصر. استخدم الخاصية HasAttributes لاختبار ما إذا كان أي سمات العقدة. إرجاع خاصية AttributeCount رقم سمات العقدة الحالية.
    رمز .NET Visual Basic
    Do While (reader.Read())Select Case reader.NodeTypeCase XmlNodeType.Element 'Display beginning of element.Console.Write("<" + reader.Name)         If reader.HasAttributes Then 'If attributes exist         	While reader.MoveToNextAttribute() 					'Display attribute name and value.Console.Write(" {0}='{1}'", reader.Name, reader.Value)End WhileEnd IfConsole.WriteLine(">")Case XmlNodeType.Text 'Display the text in each element.Console.WriteLine(reader.Value)Case XmlNodeType.EndElement 'Display end of element.Console.Write("</" + reader.Name)Console.WriteLine(">")End SelectLoop						
    C# Code
    while (reader.Read()) {    switch (reader.NodeType)     {        case XmlNodeType.Element: // The node is an Element.            Console.Write("<" + reader.Name);            while (reader.MoveToNextAttribute()) // Read attributes.                Console.Write(" " + reader.Name + "='" + reader.Value + "'");            Console.Write(">");   Console.WriteLine(">");            break;  case XmlNodeType.Text: //Display the text in each element.            Console.WriteLine (reader.Value);            break;  case XmlNodeType. EndElement: //Display end of element.            Console.Write("</" + reader.Name);   Console.WriteLine(">");            break;    }}						

  10. يتم توفير رمز المكتملة هنا راحتك.
    رمز Basic.Net المرئية
    Imports System.XmlImports System.IOModule Module1    Sub Main()        Dim stream As System.IO.StreamReader        ' Loads the XML data in the file books.xml in a new stream.        stream = New StreamReader("books.xml")        Dim reader As XmlTextReader = New XmlTextReader(stream)        Do While (reader.Read())            Select Case reader.NodeType                Case XmlNodeType.Element 'Display beginning of element.                    Console.Write("<" + reader.Name)                    If reader.HasAttributes Then 'If attributes exist                        While reader.MoveToNextAttribute()                            'Display attribute name and value.                            Console.Write(" {0}='{1}'", reader.Name, reader.Value)                        End While                    End If                    Console.WriteLine(">")                Case XmlNodeType.Text 'Display the text in each element.                    Console.WriteLine(reader.Value)                Case XmlNodeType.EndElement 'Display end of element.                    Console.Write("</" + reader.Name)                    Console.WriteLine(">")            End Select        Loop    End SubEnd Module						

    رمز C#
    using System;using System.Xml;using System.IO;namespace ReadXMLFromStream{	/// <summary>	/// Summary description for Class1.	/// </summary>	class Class1	{		static void Main(string[] args)		{			System.IO.StreamReader stream = new System.IO.StreamReader ("books.xml");			XmlTextReader reader = null;				reader = new XmlTextReader (stream);			while (reader.Read()) 			{				switch (reader.NodeType) 				{					case XmlNodeType.Element: // The node is an Element.						Console.Write("<" + reader.Name);						while (reader.MoveToNextAttribute()) // Read attributes.							Console.Write(" " + reader.Name + "='" + reader.Value + "'");						Console.Write(">");						Console.WriteLine(">");						break;					case XmlNodeType.Text: //Display the text in each element.						Console.WriteLine (reader.Value);						break;					case XmlNodeType. EndElement: //Display end of element.						Console.Write("</" + reader.Name);						Console.WriteLine(">");						break;				}			}		}	}}						
  11. إنشاء ثم تشغيل المشروع.
back to the top
مراجع
لمزيد من المعلومات، راجع "XML في Microsoft .NET: .NET Framework فئات XML و بسيط C# لعرض معالجة بيانات قابلة للتحجيم" المقالة من Magazine MSDN في موقع Microsoft التالي على الويب: لمزيد من المعلومات حول XmlReaderStreamReader وفئات StringReader "مكتبة الفئات الخاص بـ" Microsoft .NET Framework راجع الوثائق.

لمزيد من المعلومات حول استخدام XmlReader قراءة بيانات XML راجع Microsoft .NET Framework مطوري "دليل الوثائق.

back to the top
dotnet xml

تحذير: تمت ترجمة هذه المقالة تلقائيًا

خصائص

رقم الموضوع: 301228 - آخر مراجعة: 12/06/2015 03:15:55 - المراجعة: 3.4

Microsoft .NET Framework 1.1, Microsoft .NET Framework Class Libraries 1.1

  • kbnosurvey kbarchive kbmt kbhowtomaster KB301228 KbMtar
تعليقات