Introduction to XML DOM and SAX in .NET
310 likes | 438 Views
Learn about Document Object Model (DOM) and Simple API for XML (SAX) in .NET, exploring their usage, structure, and differences, with XML and ADO.NET integration discussed.
Introduction to XML DOM and SAX in .NET
E N D
Presentation Transcript
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 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ì ? 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
DOM là gì ? << Interface >> DOM XXX Parser HTML Parser XML Parser (.NET, .JAVA,..) (IE 6, Firefox, ..)
Name first Phuong middle Anh last Pham 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>
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
parentNode firstChild nextSibling previousSibling lastChild XML DOM API • Duyệt các nodes : • parentNode • childNodes • firstChild • lastChild • nextSibling • previousSibling Root Element : < bookstore > Element : < book > Element : < book > Element : < book > Element : < book >
XML DOM API • Thao tác các Node: - getElementsByTagName - getElmentById - getNamedItem - setAttribute - getAttribute - removeChild - removeAttribute - replaceChild - ..
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 • 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 • Là đối tượng dùng để thao tác với tài liệu XML trong .NET • Namespace : System.Xml
XMLDocument • Đọc và lưu • Lấy Root Element :
XMLDocument • Xóa Node
XMLDocument • Thêm Node
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 :