3/10/2011, 21:34
Bài viết này mô tả cách sử dụng các XmlTextReader lớp đọc Extensible Markup Language (XML) từ một tệp. XmlTextReader cung cấp trực tiếp phân tích và tokenizing của XML và triển khai XML 1.0 đặc điểm kỹ thuật cũng như không gian tên XML đặc điểm kỹ thuật từ World Wide Web Consortium (W3C). Bài viết này cung cấp truy cập nhanh, tokenized dòng XML chứ không phải là bằng cách sử dụng một mô hình đối tượng như XML Document Object Model (DOM).
Yêu cầu
Danh sách sau vạch ra được đề nghị phần cứng, phần mềm, cơ sở hạ tầng mạng và gói dịch vụ mà bạn cần:
Microsoft Visual Studio 2005 hoặc Microsoft Visual Studio.NET
Bài viết này giả định rằng bạn đã quen thuộc với các chủ đề sau:
Thuật ngữ XML
Việc tạo và đọc một tập tin XML
Làm thế nào để đọc XML từ một tập tin
Ví dụ này sử dụng một tập tin tên Books.xml. Bạn có thể tạo riêng của bạn tập tin Books.xml hoặc dùng tập tin mẫu được bao gồm trong các.NET Kit phát triển phần mềm (SDK) QuickStarts trong cặp sau:
\Program Files\Microsoft visual Studio.NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
Bạn phải sao Books.xml vào thư mục \Bin\Debug, nằm dưới thư mục mà bạn tạo ra dự án này. Books.xml cũng có sẵn để tải về. Xem để các "Tham khảo"phần cho vị trí tải về.
Bắt đầu Visual Studio 2005 hoặc Visual Studio.NET.
Tạo ra một mới Visual C# giao diện điều khiển đơn. Bạn tiến hành trực tiếp đến các "Danh sách mã hoàn chỉnh"phần hoặc tiếp tục thông qua các bước sau để xây dựng các ứng dụng.
Đảm bảo rằng các dự án có chứa một tham chiếu đến các System.xml.dll gan y Cynulliad.
Chỉ rõ các bằng cách sử dụng chỉ thị trên các System.xml không gian tên do đó bạn không phải vượt qua vòng loại XmlTextReader tuyên bố sau đó trong mã của bạn. Bạn phải sử dụng các bằng cách sử dụng chỉ thị trước khi bất kỳ tờ khai khác.
Tạo một thể hiện của một XmlTextReader đối tượng, và cư nó với các tập tin XML. Thông thường, các XmlTextReader lớp học được sử dụng nếu bạn cần truy cập các XML như dữ liệu thô mà không overhead DOM; Vì vậy, các XmlTextReader lớp cung cấp một cơ chế nhanh hơn để đọc XML. Các XmlTextReader lớp có nhà thầu khác nhau để xác định vị trí của dữ liệu XML. Các mã sau đây tạo ra một thể hiện của các XmlTextReader lớp và tải tập tin Books.xml. Thêm mã sau vào thủ tục chính của Class1.
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 mà có thể được xác định từ các NodeType bất động sản. Các Tên và Giá 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. Mẫu mã sau sẽ hiển thị tên của các yếu tố và loại tài liệu. Ghi chú rằng mẫu này bỏ qua thuộc tính nguyên tố.
Quay lại đầu trang
Danh sách mã hoàn chỉnh
Khi bạn kiểm tra mã, bạn có thể nhận được thông báo lỗi sau ngoại lệ: Unhandled ngoại lệ: System.Xml.XmlException: tuyên bố bất ngờ XML. Tuyên bố XML phải là nút đầu tiên trong tài liệu, và không có ký tự không gian màu trắng được phép xuất hiện trước khi nó.
Thông tin bổ sung: lỗi hệ thống. Xảy ra lỗi ngoại lệ vào dòng sau Mã: trong khi
Yêu cầu
Danh sách sau vạch ra được đề nghị phần cứng, phần mềm, cơ sở hạ tầng mạng và gói dịch vụ mà bạn cần:
Microsoft Visual Studio 2005 hoặc Microsoft Visual Studio.NET
Bài viết này giả định rằng bạn đã quen thuộc với các chủ đề sau:
Thuật ngữ XML
Việc tạo và đọc một tập tin XML
Làm thế nào để đọc XML từ một tập tin
Ví dụ này sử dụng một tập tin tên Books.xml. Bạn có thể tạo riêng của bạn tập tin Books.xml hoặc dùng tập tin mẫu được bao gồm trong các.NET Kit phát triển phần mềm (SDK) QuickStarts trong cặp sau:
\Program Files\Microsoft visual Studio.NET\FrameworkSDK\Samples\QuickStart\Howto\Samples\Xml\Transformxml\Cs
Bạn phải sao Books.xml vào thư mục \Bin\Debug, nằm dưới thư mục mà bạn tạo ra dự án này. Books.xml cũng có sẵn để tải về. Xem để các "Tham khảo"phần cho vị trí tải về.
Bắt đầu Visual Studio 2005 hoặc Visual Studio.NET.
Tạo ra một mới Visual C# giao diện điều khiển đơn. Bạn tiến hành trực tiếp đến các "Danh sách mã hoàn chỉnh"phần hoặc tiếp tục thông qua các bước sau để xây dựng các ứng dụng.
Đảm bảo rằng các dự án có chứa một tham chiếu đến các System.xml.dll gan y Cynulliad.
Chỉ rõ các bằng cách sử dụng chỉ thị trên các System.xml không gian tên do đó bạn không phải vượt qua vòng loại XmlTextReader tuyên bố sau đó trong mã của bạn. Bạn phải sử dụng các bằng cách sử dụng chỉ thị trước khi bất kỳ tờ khai khác.
- Code:
using System.Xml;
Tạo một thể hiện của một XmlTextReader đối tượng, và cư nó với các tập tin XML. Thông thường, các XmlTextReader lớp học được sử dụng nếu bạn cần truy cập các XML như dữ liệu thô mà không overhead DOM; Vì vậy, các XmlTextReader lớp cung cấp một cơ chế nhanh hơn để đọc XML. Các XmlTextReader lớp có nhà thầu khác nhau để xác định vị trí của dữ liệu XML. Các mã sau đây tạo ra một thể hiện của các XmlTextReader lớp và tải tập tin Books.xml. Thêm mã sau vào thủ tục chính của Class1.
- Code:
XmlTextReader reader = new XmlTextReader ("books.xml");
- Code:
while (reader.Read())
{
// Do some work here on the data.
Console.WriteLine(reader.Name);
}
Console.ReadLine();
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 mà có thể được xác định từ các NodeType bất động sản. Các Tên và Giá 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. Mẫu mã sau sẽ hiển thị tên của các yếu tố và loại tài liệu. Ghi chú rằng mẫu này bỏ qua thuộc tính nguyên tố.
- 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 the end of the element.
Console.Write("</" + reader.Name);
Console.WriteLine(">");
break;
}
}
- Code:
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;
}
}
Quay lại đầu trang
Danh sách mã hoàn chỉnh
- Code:
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();
}
}
}
- Code:
<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>
Khi bạn kiểm tra mã, bạn có thể nhận được thông báo lỗi sau ngoại lệ: Unhandled ngoại lệ: System.Xml.XmlException: tuyên bố bất ngờ XML. Tuyên bố XML phải là nút đầu tiên trong tài liệu, và không có ký tự không gian màu trắng được phép xuất hiện trước khi nó.
Thông tin bổ sung: lỗi hệ thống. Xảy ra lỗi ngoại lệ vào dòng sau Mã: trong khi
- Code:
(reader.Read())
- Code:
<?xml version='1.0' ?>
- Code:
Thẻ xml này có một không gian trước các '<’ bracket.="" remove="" the="" preceding="" whitespace="" to="" resolve="" the="" error.=""></’>
TÀI LIỆU THAM KHẢO
Các tập tin sau đây có sẵn để tải về từ Microsoft Download Center:[You must be registered and logged in to see this link.]
Để biết thêm chi tiết về.Các lớp học NET Framework XML và C#, ghé thăm Web site sau của Microsoft Developer Network (MSDN):[You must be registered and logged in to see this link.]
Để biết thêm thông tin về các XmlReader lớp, truy cập vào MSDN Web site sau:[You must be registered and logged in to see this link.] (vs.71) .aspx
Để biết thêm về cách sử dụng XmlReader để đọc dữ liệu XML, truy cập vào trang web MSDN Web sau đây:[You must be registered and logged in to see this link.] (VS.71) .aspx
[You must be registered and logged in to see this link.] (vs.71) .aspx
Để có thông tin tổng quát hơn về Visual C#.NET hoặc XML trong.NET, thấy các nhóm tin Usenet sau đây:[You must be registered and logged in to see this link.] (vs.71) .aspx
[You must be registered and logged in to see this link.]
[You must be registered and logged in to see this link.]
[You must be registered and logged in to see this link.]