Làm th? nào đ? đ?c d? li?u XML t? m?t d?ng su?i trong.NET Framework SDK

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 301228 - Xem s?n ph?m mà bài này áp d?ng vào.
Bung t?t c? | Thu g?n t?t c?

? Trang này

TÓM T?T

Bài vi?t này ch?ng t? làm th? nào đ? s? d?ng các XmlTextReader l?p đ?c Extensible Markup Language (XML) t? m?t d?ng su?i. Các d?ng có th? đ?n t? nhi?u ngu?n, ch?ng h?n như m?t d?ng byte t? m?t máy ch?, m?t t?p tin, ho?c TextReader l?p h?c.

Yêu c?u

Danh sách sau v?ch ra đư?c đ? ngh? ph?n c?ng, ph?n m?m, h? t?ng m?ng, và gói d?ch v? c?n thi?t:
  • Microsoft Windows 2000 Professional, Windows 2000 Server, Windows 2000 Advanced Server, ho?c máy ch? Windows NT 4.0
  • Microsoft Visual Studio.NET
Bài vi?t này gi? đ?nh r?ng b?n đ? quen thu?c v?i sau các ch? đ?:
  • Thu?t ng? XML
  • Vi?c t?o và đ?c XML

Làm th? nào đ? đ?c d? li?u XML t? m?t d?ng su?i

  1. M? ph?ng thu tr?c quan.NET.
  2. T?o m?t Microsoft Visual Basic (VB) m?i ho?c Microsoft Visual C# giao di?n đi?u khi?n ?ng d?ng.

    LƯU ?: Các bư?c sau đây cung c?p m?t mô t? chi ti?t làm th? nào đ? xây d?ng các ?ng d?ng. B?n c?ng có th? đi tr?c ti?p đ?n bư?c 10, trong trư?ng h?p hoàn thành m? đư?c cung c?p.
  3. Đ?m b?o r?ng các d? án có ch?a m?t tham chi?u đ?n các System.xmlSystem.io không gian tên.
  4. S? d?ng các báo cáo hàng nh?p kh?u vào các XML không gian tên do đó b?n không ph?i vư?t qua v?ng lo?i XmlTextReader khai báo trong không gian tên đó sau này trong m? c?a b?n. B?n ph?i s? d?ng tuyên b? nh?p kh?u trư?c đ? b?t k? t? khai khác như sau:
    Visual Basic.NET m?
    Imports System.Xml
    Imports System.IO
    						
    Visual C# M?
    using System.Xml;
    using System.IO;
    						
  5. T?o ho?c truy xu?t các d?ng XML. M?t d?ng su?i là m?t tr?u tư?ng đ?i di?n c?a m?t thi?t b? đ?u vào ho?c đ?u ra đó là ngu?n g?c c?a, ho?c đi?m đ?n cho, d? li?u (trong trư?ng h?p, d? li?u XML này). B?n có th? vi?t và đ?c t? m?t d?ng su?i, mà t?t nh?t đư?c h?nh dung như là m?t d?ng ch?y c?a byte.

    Su?i là đư?c s? d?ng đ? cung c?p đ?c l?p v?i thi?t b? và do đó đ?i h?i ph?i có chương tr?nh thay đ?i n?u, ví d?, là ngu?n g?c c?a m?t d?ng thay đ?i. Có m?t vài cách khác nhau đ? t?o ra m?t d?ng cho các XmlTextReader l?p h?c. Ch?n m?t trong các m?u m? sau đây đ? thêm vào các Th? t?c chính c?a module m?c đ?nh:
    • M?u m? có s? d?ng các StringReader đ?i tư?ng:

      Các StringReader đ?i tư?ng đ?c k? t? t? dây và m?t trong m?t chu?i giá tr? khi xây d?ng.Visual Basic.NET Code
      Dim stream as System.IO.StringReader
      stream = 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# Code
      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>");
      						
    • M?u m? có s? d?ng các StreamReader đ?i tư?ng:

      Các StreamReader đ?i tư?ng đư?c s? d?ng đ? đ?c k? t? t? t?p tin. Nó đ?c trong các tên t?p đư?c đ?c trong th?i gian xây d?ng:Visual Basic.NET Code
      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# Code
      System.IO.StreamReader stream = new System.IO.StreamReader ("books.xml");
      						
      Lưu ? r?ng các t?p tin Books.xml đư?c s? d?ng ? đây. B?n có th? t?o riêng c?a b?n Books.XML t?p tin. M?t m?u Books.xml file c?ng đư?c v?n chuy?n v?i Visual Studio.M?ng lư?i và các.NET Framework SDK.

  6. Xây d?ng m?t XmlTextReader l?p h?c v?i các d?ng. Thông thư?ng, XmlTextReader đư?c s? d?ng n?u b?n c?n truy c?p các XML như d? li?u thô mà không có các chi phí c?a m?t Document Object Model (DOM); V? v?y, XmlTextReader cung c?p m?t cơ ch? nhanh hơn đ? đ?c XML. XmlTextReader có nhà th?u khác nhau đ? xác đ?nh v? trí các XML d? li?u. Các m? sau đây t?i XmlTextReader t? m?t d?ng:
    Visual Basic.NET Code
    Dim reader As XmlTextReader = New XmlTextReader (stream)
    						
    C# Code
    XmlTextReader reader = null;	
    reader = new XmlTextReader (stream);
    						
  7. Đ?c qua các XML. M?t l?n t?i, XmlTextReader th?c hi?n tu?n t? l?n đ?c đ? di chuy?n qua các d? li?u XML và s? d?ng các Đọc phương pháp đ? có đư?c các b?n ghi ti?p theo. Nó tr? v? False n?u không có không có h? sơ b?.
    Visual Basic.NET Code
    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. Ki?m tra các nút. X? l? d? li?u XML, m?i b?n ghi có m?t lo?i nút có th? đư?c xác đ?nh t? các NodeType b?t đ?ng s?n. Các TênGiá trị tài s?n tr? l?i nút tên (các nguyên t? và thu?c tính tên) và giá tr? nút (văn b?n n?t) hi?n t?i nút (ho?c h? sơ). Các NodeType li?t kê s? xác đ?nh lo?i nút. Ví d? sau hi?n th? tên c?a các y?u t? và lo?i tài li?u. Lưu ? r?ng ví d? này b? qua các thu?c tính nguyên t?.
    Visual Basic.NET Code
    Do While (reader.Read())
    Select Case reader.NodeType
    Case 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 Select
    Loop
    						
    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. Ki?m tra các thu?c tính. Lo?i n?t nguyên t? có th? bao g?m m?t danh sách các thu?c tính nút đư?c liên k?t v?i h?. Các MovetoNextAttribute phương pháp di chuy?n theo tu?n t? qua m?i thu?c tính nguyên t?. S? d?ng các HasAttributes b?t đ?ng s?n đ? th? nghi?m cho dù nút có thu?c tính. Các AttributeCount b?t đ?ng s?n tr? v? s? lư?ng các thu?c tính cho nút hi?n t?i.
    Visual Basic.NET Code
    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
    						
    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. Hoàn thành m? đư?c cung c?p ? đây thu?n ti?n cho b?n.
    Visual Basic.Net m?
    Imports System.Xml
    Imports System.IO
    Module 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 Sub
    
    End Module
    						

    C# Code
    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. Xây d?ng và ch?y d? án c?a b?n.

THAM KH?O

Đ? bi?t thêm chi ti?t, xem XML"trong Microsoft.NET:.NET Bài vi?t các l?p XML khuôn kh? và C# cung c?p Simple, kh? năng m? r?ng d? li?u thao tác" t? MSDN t?p chí t?i Microsoft Web site sau:
http://MSDN.Microsoft.com/msdnmag/issues/01/01/XML/Default.aspx
Đ? bi?t thêm thông tin v? các XmlReader, StreamReader, và StringReader các l?p h?c, xem Microsoft.Thư vi?n l?p NET Framework tài li?u hư?ng d?n.

Đ? bi?t thêm thông tin v? vi?c s? d?ng XmlReader đ? đ?c d? li?u XML, xem Microsoft.NET Framework nhà phát tri?n Tài li?u hư?ng d?n.

Thu?c tính

ID c?a bài: 301228 - L?n xem xét sau cùng: 26 Tháng Tám 2011 - Xem xét l?i: 2.0
Áp d?ng
  • Microsoft .NET Framework 1.1
T? khóa: 
kbhowtomaster kbmt KB301228 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài vi?t này đư?c d?ch b?ng ph?n m?m d?ch máy c?a Microsoft ch? không ph?i do con ngư?i d?ch. Microsoft cung c?p các bài vi?t do con ngư?i d?ch và c? các bài vi?t do máy d?ch đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng ngôn ng? c?a b?n. Tuy nhiên, bài vi?t do máy d?ch không ph?i lúc nào c?ng hoàn h?o. Lo?i bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, gi?ng như m?t ngư?i nư?c ngoài có th? m?c sai sót khi nói ngôn ng? c?a b?n. Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra. Microsoft c?ng thư?ng xuyên c?p nh?t ph?n m?m d?ch máy này.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này:301228

Cung cấp Phản hồi

 

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