ĐỌC GHI XML 
DOM 
Môn: XML và ứng dụng 
GVLT: Thầy Nguyễn Tiến Huy 
Trình bày: Phạm Tú San – 
[email protected] 
NỘI DUNG 
Giới thiệu XML 
Đọc, ghi XML 
XML DOM 
VÍ DỤ VỀ 1 TÀI LIỆU XML 
 Tove 
 Jani 
 Reminder 
 Don't forget me this weekend! 
XML LÀ GÌ? 
Là eXtensible Markup Language. 
Là ngôn ngữ đánh dấu tương tự như HTML 
Do World Wide Web Consortium (W3C) để 
nghị. 
Được thiết kế để chứa hoặc truyền dữ liệu 
 Đặc biệt là các hệ thống kết nối Internet 
Các tags không được định nghĩa trước. 
NỘI DUNG TÀI LIỆU XML 
Nội dung chính: 
 Hệ thống các thẻ đánh dấu tương ứng với các 
thông tin cần biểu diễn 
 Có một node gốc 
XML tree 
 Tove 
 Jani 
 Reminder 
 Don't forget me this 
weekend! 
 ..... 
NỘI DUNG 
Giới thiệu XML 
Đọc, ghi XML 
XML DOM 
ĐỌC XML 
Open 
Read 
Close 
String path = “MyXMLFile.xml”; 
XmlTextReader xmlr = new XmlTextReader(path); 
xmlr.Close(); 
xmlr.Read(); 
xmlr.Name 
xmlr.Value 
xmlr.NodeType == XmlNodeType.* 
xmlr.HasAttributes 
xmlr. AttributeCount 
xmlr.GetAttribute(i) 
ĐỌC XML 
Read(): đọc node tiếp theo ở trong file 
NodeType: thuộc tính chỉ loại node 
 XmlNodeType.Text: node chỉ chứa nội dung. 
 XmlNodeType.Comment: node comment 
 XmlNodeType.Element: node có các thuộc tính, 
node con. 
GetAttribute(): có thể truyền vào thứ tự 
hoặc truyền vào tên thuộc tính 
ĐỌC XML 
XmlTextReader r = new XmlTextReader(XMLFileName); 
String ss = ""; 
while (r.Read()) 
{ 
 if (r.NodeType == XmlNodeType.Element) 
 { 
 ss = ss + ("") + "\n"; 
 if (r.HasAttributes) 
 { 
 for (int i = 0; i < r.AttributeCount; i++) 
 { 
 ss=ss+("\tATTRIBUTE: " +r.GetAttribute(i)) + "\n"; 
 } 
 } 
 } 
 else if (r.NodeType == XmlNodeType.Text) 
 { 
 ss = ss + ("\tVALUE: " + r.Value) + "\n"; 
 } 
} 
MessageBox.Show(ss); 
r.Close(); 
GHI XML 
Open 
Write 
Close 
String path = “MyXMLFile.xml”; 
XmlTextWriter xmlw = new XmlTextWriter(path 
 Encoding.Unicode); 
xmlw.Close(); 
xmlw.WriteStartDocument(); 
xmlw.WriteEndDocument() 
xmlw.WriteStartElement(“name”); 
xmlw.WriteEndElement(); 
xmlw.WriteAttributeString("id", “value") 
xmlw.WriteElementString(“name", “value"); 
xmlw.WriteComment(“comment"); 
NỘI DUNG 
Giới thiệu XML 
Đọc, ghi XML 
DOM 
DOM 
 Document Object Model 
 Chuẩn do tổ chức W3C đề ra để truy xuất các 
tài liệu (XML, HTML,) 
 “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” 
 Gồm 3 phần riêng biệt: 
 Core DOM– cho tài liệu có cấu trúc 
 XML DOM – tài liệu XML 
 HTML DOM – tài liệu HTML 
XMLDOM 
XML DOM định nghĩa 1 chuẩn để truy xuất 
và thao tác trên tài liệu XML 
Độc lập ngôn ngữ và nền tảng 
Định nghĩa ra các đối tượng (object) và 
thuộc tính (property) của các thành phần 
XML và các phương thức để truy xuất đến 
chúng 
XML DOM NODE 
Với mô hình DOM, mọi thứ trong tài liệu 
XML đều được xem là node 
 Toàn bộ tài liệu: Document Node 
 Thẻ: Element Node 
 Text: Text Node 
 Thuộc tính: Attribute Node 
 Ghi chú: Comment Node 
Toàn bộ tài liệu XML: node – tree 
VÍ DỤ 
NODE TREE 
Root Element :
Element : 
Element : 
Element : 
Element : 
parentNode 
lastChild 
nextSibling 
previousSibling 
firstChild 
 Node gốc được gọi là 
root 
 Trừ root thì mọi node 
đều có 1 node parent 
 Một node có thể có 
nhiều node con 
 Node lá không có con 
 Sibling là node có 
chung parent node 
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 
XMLDOCUMENT 
Là đối tượng để thao tác tài liệu XML trong 
.NET 
Namespace: System.Xml 
XMLDOCUMENT 
Các thuộc tính cơ bản 
Thuộc tính 
DocumentElement 
ParentNode, ChildNodes 
FirstChild, LastChild 
PreviousSibling, NextSibling 
InnerText, InnerHTML 
CÁC PHƯƠNG THỨC CƠ BẢN 
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 
 Đọc và lưu 
 Lấy Root Element : 
CÁC THAO TÁC CƠ BẢN 
Xóa node 
CÁC THAO TÁC CƠ BẢN 
Thêm Node 
CÁC THAO TÁC CƠ BẢN 
THAM KHẢO 
Slide XML của 
 Thầy Lưu Huỳnh Châu Pha 
 Thầy Trương Phước Lộc 
 Thầy Hồ Tuấn Thanh