DOM & SAX XML & ADO.NET GVTH: Phạm Anh Phương Email : paphuong@fit.hcmuns.edu.vn
Thời gian 20 minutes
Tham khảo Websites : http://www.codeproject.com/cs/database/ADONET_and_XML.asp http://www.w3.org/XML http://www.xml.org http://www.informit.com/guides/content.asp?g=dotnet&seqNum=80&rl=1 Thư viện MSDN Ebooks : 1/ The.Book.of.SAX-The.Simple.API.for.XML.pdf 2/ MS.Press.Applied.XML.Programming.For.Microsoft.Dot.NET.eBook-LiB.chm
Mục lục DOM & SAX XMLDocument XML & ADO.NET
DOM
DOM là gì ? The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document Interface
DOM là gì ? Core DOM XML DOM HTML DOM DOM được chia gồm 3 phần riêng biệt : Core DOM XML DOM HTML DOM Là tập đối tượng thao tác với tài liệu có cấu trúc, XML, HTML
<< Interface >> DOM là gì ? << Interface >> DOM XML Parser HTML Parser XXX Parser (.NET, .JAVA,..) (IE 6, Firefox, ..)
XML DOM là gì ? DOM xem tài liệu XML như 1 cây có cấu trúc Tất cả Element, Attribute, Text đều có thể truy xuất (thêm, xóa và sửa) Element, Attribute, Text được xem là Node Tài liệu XML là 1 Node Tree <?xml version="1.0" > <name> <first>Phuong</first> <middle>Anh</middle> <last>Pham</last> </name> middle Name first last Phuong Anh Pham
Node Tree Một cây gồm nhiều node dùng để thể hiện 1 tài liệu XML và sự kết nối giữa chúng - Trong cây, node cao nhất gọi là root - Mỗi node, trừ root ra có chính xác 1 node cha - Một node có nhiều node con - Node lá là node không có node con - Siblings là những node có cùng cấp với node cha
XML DOM Parser Để đọc, cập nhật, tạo và thao tác 1 tài liệu XML ta cần 1 XML Parser Có nhiều XML Parser được hỗ trợ trong hầu hết các ngôn ngữ (JAVA, JavaScript, .NET, ..) Parser nạp tài liệu XML vào trong bộ nhớ máy tính và được xem dưới dạng cây Node Sau đó, dữ liệu được thao tác và xử lý thông qua tập hàm XML DOM API
XML DOM Parser
XML DOM API Duyệt các nodes : parentNode childNodes firstChild lastChild nextSibling previousSibling Root Element : parentNode < bookstore > firstChild Element : < book > nextSibling Element : < book > previousSibling Element : < book > lastChild Element : < book >
XML DOM API Thao tác các Node: - getElementsByTagName - getElmentById - getNamedItem - setAttribute - getAttribute - removeChild - removeAttribute - replaceChild - ..
SAX
SAX SAX (Simple API for XML) Performance và Memory không bị ảnh hưởng cho dù thao tác với tài liệu XML có dung lượng lớn Event-Driven API
SAX
SAX Xử lý dữ liệu ngay khi Parser chưa xử lý tòan bộ tài liệu XML (Khác so với DOM) Dữ liệu sau khi được parse sẽ gửi đến Client Program thông qua các hàm Notification Method; dữ liệu này sau đó bị xóa
SAX SAX được hỗ trợ trong JAVA nhưng chưa có trong .NET Khuyết điểm: Developer phải tạo cấu trúc lưu trữ thông tin riêng vì dữ liệu gửi về từ parser sẽ tự động mất sau khi đến Notification Method SAX không phù hợp đối với các ứng dụng truy xuất ngẫu nhiên và thực hiện chỉnh sửa phức tạp
XMLDocument
XMLDocument Là đối tượng dùng để thao tác với tài liệu XML trong .NET Namespace : System.Xml
XMLDocument Tên hàm (Thuộc tính) Ý nghĩa Load Nạp tài liệu XML Save Ghi tài liệu XML -InsertBefore, InsertAfter PrependChild, AppendChild RemoveChild, ReplaceChild, RemoveAll Phương thức truy cập node - NodeChanging, NodeChanged NodeInserting, NodeInserted NodeRemoving, NodeRemoved Xử lý sự kiện thông qua các delegate FirstChild, LastChild ChildNodes, NextSibling, PreviousSibling, ParentNode Thao tác duyệt node
XMLDocument Đọc và lưu Lấy Root Element :
XMLDocument Xóa Node
XMLDocument Thêm Node
XML & ADO.NET
XML & ADO.NET Đối tượng : DataSet Ý nghĩa : Một Database nhưng được lưu trong memory Thao tác : - Tạo mối quan hệ giữa các bảng - Thêm, xóa, sửa các record trong bảng Với XML : - Ghi dữ liệu thành file XML - Đọc dữ liệu từ file XML và nạp lại vào DataSet
XML & ADO.NET Một số phương thức : GetXml GetXmlSchema WriteXml ReadXml WriteXmlSchema ReadXmlSchema
XML & ADO.NET Minh họa :
Hỏi & Đáp
Cảm ơn