XML và Visual Basic.NET 1
Download
Report
Transcript XML và Visual Basic.NET 1
XML và Visual Basic.NET
1- Đối tượng XmlDocument
2- Đối tượng XmlTextReader, XmlTextWriter
I- Đối tượng XmlDocument
1) Chức năng
-
Phù hợp khi làm việc với tệp XML đã tồn tại
Cho phép thực hiện các thao tác trên tệp XML
như trên một table:
Đọc dữ liệu
Thêm một Node
Xóa một Node
Cập nhật thuộc tính và giá trị một Node
Lưu ý : Đối tượng XmlDocument nằm trong name space System.Xml
Do vậy đầu chương trình cần import / using System.Xml (VB.NET hay C#)
2- Khai báo đối tượng XmlDocument
* Khác với khai báo một biến kiểu dữ liệu đơn giản:
Dim tênbiến As KiểuDữLiệu
Ví dụ :
Dim Str As String
Dim Num as Integer
Dim Arr(5) as String
Nhận xét : VB và VB.NET có cách khai báo biến giống
nhau, nhưng VBScript không khai báo kiểu dữ liệu.
* Dim xmlDoc As new XmlDocument
(Khai báo sử dụng tư liệu XML)
3- Đọc, Ghi một tư liệu XML
a) Phương thức Load : đọc tệp XML
Cú pháp : xmlDoc.Load(PathName_of_XML_file)
Thông thường ta tạo thư mục DATA để lưu trữ các tệp XML trong một
ứng dụng VB.NET
Cú pháp trên được sử dụng:
xmlDoc.Load(“../../DATA/book.xml”)
b) Phương thức Save : Lưu tệp tin XML
Cú pháp: xmlDoc.Save(PathName_of_XML_file)
Xem AlterXML.VB
4- Truy xuất nút gốc của tư liệu XML
a) Khai báo một nút, kể cả nút gốc
Dim TênNút As XmlElement
b) Truy xuất nút gốc của tư liệu XML
Dim Root As XmlElement
Set Root = xmlDoc.documentElement
5- Các thuộc tính quen thuộc...
FirstChild, LastChild
NextSibling, PreviousSibling
ParentNode
Trong các ứng dụng thực tiển của VB ít khi sử dụng
các thuộc tính trên.
Lưu ý: các thuộc tính trên trả về một đối tượng (một
Node)
6- Truy xuất các nút con
a) Sử dụng phương thức SelectSingleNode ví dụ :
Dim SV as XmlElement
SV=xmlDoc.SelectSingleNode(“DCT/STUDENTS”)
Nhận xét :
- Sử dụng SelectSingleNode khi muốn truy cập một nút
duy nhất trong tư liệu XML (nút nầy là duy nhất)
- Cú pháp trên có thể sử dụng:
SV=Root.SelectSingleNode(“STUDENTS”)
6- Truy xuất các nút con...
b) Sử dụng tập hợp ChildNodes
Cú pháp : NútCha.ChildNodes
Ví dụ : truy cập đến các nút STUDENT
xmlDoc.documentElement.ChildNodes (1)
c) Sử dụng phương thức getElementsByTagName
(1)
Thay bằng : xmlDoc.getElementsByTagName(“STUDENT”)
Dim List As XmlNodeList = xmlDoc.GetElementsByTagName("Book")
Kết quả trả về mãng các đối tượng (là các node), ta thường dùng vòng
lặp For Each ... In để duyệt qua các phần tử của mãng.
For Each Nut As XmlElement In List
‘ Câu lệnh thao tác trên Nut như là một Object
Next
7- Truy xuất nội dung của nút
Nhận nội dung của nút
Giá_trị = Nút.InnerText
Cập nhật giá trị của nút:
Nút.InnerText = Giá-Trị
Nhận xét: không giống như VB và JavaScript, VB.NET không sử
dụng thuộc tính nodeValue
9- Truy xuất thuộc tính của một nút
Nhận giá trị của thuộc tính
Giá_trị =Nut.GetAttribute(“Tên_Thuộc_tính”)
a)
b) Cập nhật giá trị của thuộc tính
Nut.SetAttribute(“Tên_Thuộc_tính”,”Giá_trị”)
10- Chèn nút mới
- Dim newNode as XmlElement
- newNode = xmlDoc.CreateElement(“Tên_Nút”)
- newNode.InnerText=giá_trị
- Nút_cha.AppendChild(Nút_con)
Phương thức AppendChild chèn thêm một nút vào cuối
cây XML
Ngoài ra còn sử dụng phương thức InsertBefore,
InsertAfter.
11. Phương thức InsertBefore, InsertAfter
Cú pháp:
NútCha.InsertAfter(nút, nút_đứng_ trước)
NútCha.InsertBefore(nút, nút_đứng_ sau)
Hãy nhận xét :
Root=xmlDoc.documentElement
Last=Root.LastChild
NewNode=XmlElement....
(1) Root.AppendChild(NewNode)
(2) Root.InsertAfter(NewNode,Last)
11- Chèn nút mới...
Bổ sung thuộc tính cho nút đã tồn tại
- Dim Prop As XmlAttribute
- Prop= xmlDoc.CreateAttribute("Price")
- Prop.Value = Rate
- Nut.SetAttributeNode(Prop)
12. Xóa một nút
Cú pháp : NútCha.RemoveChild(NútCon)
- Vấn đề là phải xác định xóa nút thỏa điều kiện
nào?
- và Nút cha của nó là nút nào?
13- Tổng kết
Khai báo biến:
Tư liệu XML : Dim xmlDoc as New XmlDocument
Node
: Dim Tên_Nút as XmlElement
Truy cập các Nút :
Nút gốc
: xmlDoc.documentElement
Các nút con : ChildNodes, getElementsByTagName
XmlNodeList
Một nút cụ thể : selectSingleNode
Truy cập giá trị thuộc tính, giá trị của nút
TênNut.innerText
TênNut.GetAttribute(“Tên_Thuộc_Tính”)
13- Tổng kết ....
Tạo một nút mới
Dim Nut as XmlElement
Nut = xmlDoc.CreateElement(“Tên_Thẻ”)
‘ - gán trị
‘ Chèn vào cây XML:
‘- AppendChild, InsertAfter, InsertBefore
‘ - Save
13. Tổng kết ...
Khai báo các biến chung
Sub Tên_Thủ_Tục(Tham_số)
1-Khai báo các biến riêng
2- Mở tệp XML
3- Cập nhật : AppendChild, SetAttribute, InnerText, RemoveChild
Duyệt dữ liệu, Tìm kiếm,...
4- [Lưu tệp XML, nếu đã cập nhật dữ liệu XML]
End Sub
II. Đối tượng XmlTextWriter và XmlTextReadder
III. Đối tượng XmlWriter và XmlReadder
- Hai phần này sẽ upload sau
- Một chủ đề vốn là thế mạnh của Java là Xquery cũng sẽ được test trong môi trường
.NET framework và upload sau.