CÁC GIẢI PHÁP LẬP TRÌNH C# - Trang 175

175

Chương 5: XML

position

Hàm này thu lấy các phần tử dựa vào vị trí.

/Order/Items/Item[position()=2]

chọn phần tử

Item

thứ hai.

count

Hàm này đếm số phần tử. Bạn cần chỉ định tên của phần tử con cần đếm
hoặc dấu hoa thị (

*

) cho tất cả các phần tử con.

/Order/Items/Item[count(Price)=1]

thu lấy các phần tử

Item

có đúng một

phần tử

Price

lồng bên trong.

Biểu thức XPath và tất cả tên phần tử và đặc tính mà bạn sử dụng trong đó luôn
có phân biệt chữ hoa-thường, vì bản thân XML
có phân biệt chữ hoa-thường.

7.

7.

Đ c và ghi XML mà không ph i n p toàn b tài li u vào b nh

ả ạ

ộ ớ

Đ c và ghi XML mà không ph i n p toàn b tài li u vào b nh

ả ạ

ộ ớ

Bạn cần đọc XML từ một stream, hoặc ghi nó ra một stream. Tuy nhiên, bạn
muốn xử lý từng nút một, không phải nạp toàn bộ vào bộ nhớ với một

XmlDocument

.

Để ghi XML, hãy tạo một

XmlTextWriter

bọc lấy một stream và sử dụng các

phương thức

Write

(như

WriteStartElement

WriteEndElement

). Để đọc XML,

hãy tạo một

XmlTextReader

bọc lấy một stream và gọi phương thức

Read

để dịch

chuyển từ nút này sang nút khác.

Lớp

XmlTextWriter

XmlTextReader

đọc/ghi XML trực tiếp từ stream từng nút một. Các lớp

này không cung cấp các tính năng dùng để duyệt và thao tác tài liệu XML như

XmlDocument

,

nhưng hiệu năng cao hơn và vết bộ nhớ nhỏ hơn, đặc biệt khi bạn làm việc với các tài liệu
XML cực kỳ lớn.
Để ghi XML ra bất kỳ stream nào, bạn có thể sử dụng

XmlTextWriter

. Lớp này cung cấp các

phương thức

Write

dùng để ghi từng nút một, bao gồm:

WriteStartDocument

—ghi phần khởi đầu của tài liệu; và

WriteEndDocument

, đóng bất

kỳ phần tử nào đang mở ở cuối tài liệu.

WriteStartElement

—ghi một thẻ mở (opening tag) cho phần tử bạn chỉ định. Kế đó,

bạn có thể thêm nhiều phần tử lồng bên trong phần tử này, hoặc bạn có thể gọi

WriteEndElement

để ghi thẻ đóng (closing tag).

WriteElementString

—ghi một phần tử, cùng với một thẻ mở, một thẻ đóng, và nội

dung text.

WriteAttributeString

—ghi một đặc tính cho phần tử đang mở gần nhất, cùng với tên

và giá trị.

Sử dụng các phương thức này thường cần ít mã lệnh hơn là tạo một

XmlDocument

bằng tay,

như được trình bày trong mục 5.2 và 5.3.
Để đọc XML, bạn sử dụng phương thức

Read

của

XmlTextReader

. Phương thức này tiến reader

đến nút kế tiếp, và trả về

true

. Nếu không còn nút nào nữa, nó sẽ trả về

false

. Bạn có thể thu

lấy thông tin về nút hiện tại thông qua các thuộc tính của

XmlTextReader

(bao gồm

Name

,

Value

, và

NodeType

).

Liên Kết Chia Sẽ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.