Thao tác XML
Sử dụng DOM trong .NET – Phần 1
Document Object Model (DOM) thực thi trong .NET hỗ trợ các thuật
W3C DOM Level 1 Core DOM Level 2. DOM được thực thi thông qua
lớp XmlNode, một lớp ảo mô tả một nút của tài liệu.
Ngoài ra n một lớp XmlNodeList một danh sách thứ tc nút.
Đây là một danh sách sống, và bt kì thay đổi nào cũng sẽ cập nhật ngay vào
danh ch. XmlNodeList htrợ truy cập chỉ mục và truy cập lặp. Còn có
một lớp ảo khác, XmlCharacterData, lớp m rộng của
XmlLinkedNode, và cung cấp các phương thức sdụng văn bản cho các lớp
khác.
Các lớp XmlNode XmlNodeList trang điểm cho thực thi DOM trong
.NET Framework. Đây là một danh sách các lớp cơ sở trong XmlNode:
Class Name Description
XmlLinkedNode Tr v nút trước và sau nút hiện tại. Thêm
c
thuộc tính NextSibling PreviousSibling
o
XmlNode.
XmlDocument Miêu t toàn btài li
u. Thực thi c đặc điểm kĩ
thuật DOM Level 1 và Level 2.
XmlDocumentFragment
Miêu thình cây thư mục của tài liu.
XmlAttribute Một đối tượng thuộc tính của một đối
ng
XmlElement.
XmlEntity Phân tách và thợp các nút.
XmlNotation Chứa cách chú thích trong môt DTD hoặc sơ đồ.
Các lớp sau mở rộng XmlCharacterData:
Class Name Description
XmlCDataSection Một đối tượng t một đoạn CData
section
của một tài liệu.
XmlComment tmột đối tượng ghi chú XML.
XmlSignificantWhitespace
t
một nút với khoảng trắng. Các nút ch
được tạo khi cờ PreserveWhiteSpace là true.
XmlWhitespace Miêu t whitespace trong một thành ph
chú. Các nút đư
ợc tạo chỉ khi cờ
PreserveWhiteSpace là true.
XmlText Ghi chú dng văn bản cu một thành ph
n hoặc
thuộc tính.
Cuối cùng, tập các lớp tiếp theo mở rộng lp XmlLinkedNode:
Class Name Description
XmlDeclaration Miêu tnút khai báo (<?xml version='1.0'...>)
XmlDocumentType Quan hệ dữ liệu với khai báo kiểu tài liu
XmlElement Một đối tượng thành phần XML
XmlEntityReferenceNode
tmột nút tham chiếu tồn tại
XmlProcessingInstruction
Chứa một cấu trúc xử lí XML
Như bạn thấy, .NET tạo sẽ một lớp phù hợp với bất kì kiểu XML nào bạn bắt gặp.
Bởi vậy, bạn sẵn có một bộ các công cụ mạnh mẽ và mềm dẻo. Chúng ta sẽ không đi vào
chi tiết các lớp, nhưng chúng ta sẽ dùng một s dụ. Sau đây là sơ đồ các lớp:
Sử dụng lớp XmlDocument
XmlDocument và lớp xuất phát XmlDataDocument (chúng ta sxem xét sau
trong chương) c lớp bạn sẽ dùng để miêu t DOM trong .NET. Không
giống như XmlReader XmlWriter, XmlDocument cho cung cấp cho bạn
khnăng đọc và viết như truy xuất ngẫu nhiên y DOM . XmlDocument
tương tự như thực thi DOM trong MSXML. Nếu bạn đã tng lập trình vi
MSXML bn sẽ cảm thấy tiện lợi khi dùng XmlDocument.
Lấy một d vtạo một đối tượng XmlDocument, load một tài liu tđĩa,
load các tiêu đề vào một listbox. Nó giống như mọt dmà chúng ta đã
tạo trong phần XmlReader. i khác đây là chúng ta schọn c nút mà
chúng ta sẽ làm việc thay vì duyệt qua các nút trong tài liệu như đã tng làm.
Đây mã. Hãy xem cách làm việc của và so sánh với dXmlReader
(file có thể tìm thấy trong thư mục DOMSample1):
private void button1_Click(object sender, System.EventArgs e)
{
// doc is declared at the module level
// change path to match your path structure
doc.Load("..\\..\\..\\books.xml");
// get only the nodes that we want
XmlNodeList nodeLst=doc.GetElementsByTagName("title");