310 likes | 431 Views
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
E N D
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 :