<SIZE>~200 MB for Windows XP Home Edition</SIZE> </PRODUCT>. </PRODUCTDATA>[r]
(1)7/5/16
XML VÀ NET VỚI C#
PHAN TRỌNG TIẾN
BM Công nghệ phần mềm
Khoa Công nghệ thông tin, VNUA
Email: phantien84@gmail.com
Website: http://timoday.edu.vn
7/5/16 XML NET với C# 1
Mục tiêu
q Hiểu XML gì? Và ứng dụng XML
q XML hỗ trợ NET
q Hiểu mơ hình phân tích cấu trúc XML
(2)7/5/16
Nội dung
q Tổng quan XML
q XML Microsoft NET
q Các mơ hình phân tích cấu trúc XML
q Thư viện XML.NET
q Sinh code tựđộng XML NET
q Kiểm tra tính hợp lệ XML NET
q Áp dụng kiểu style sheet cho tài liệu XML
7/5/16 XML NET với C# 3
Tổng quan XML
q XML (EXtensible Markup Language) thiết kết để miêu
tả liệu
q Là ngôn ngữđánh dấu giống HTML
q Các thẻ (tags) tựđịnh nghĩa người sử dụng
q Được dùng giao thức tích hợp ứng dụng
(3)7/5/16
Ví dụ một file XML
<?xmlversion="1.0"encoding="UTF-8"?> <PRODUCTDATA>
<PRODUCTPRODID="P001">
<PRODUCTNAME>Windows XP SP2</PRODUCTNAME>
<DESCRIPTION>
This is the latest update pack provided by Microsoft
</DESCRIPTION>
<DETAILS>Has Firewall Protection</DETAILS> <PRICE>Free</PRICE>
<SIZE>~200 MB for Windows XP Home Edition</SIZE> </PRODUCT>
</PRODUCTDATA>
7/5/16 XML NET với C# 5
<?xml version="1.0" encoding="UTF-8"?> <PRODUCTDATA>
<PRODUCT PRODID="P001">
<PRODUCTNAME>Windows XP SP2</PRODUCTNAME> <DESCRIPTION>
This is the latest update pack provided by Microsoft </DESCRIPTION>
<DETAILS>Has Firewall Protection</DETAILS> <PRICE>Free</PRICE>
<SIZE>~200 MB for Windows XP Home Edition</SIZE> </PRODUCT>
</PRODUCTDATA>
Root Element
Cấu trúc XML
Parent Element
Child Element Attribute
(4)7/5/16
.NET Framework
Base Class Library
Common Language Specification
Common Language Runtime ADO NET: Data and XML
VB C++ C#
V
isua
l S
tudi
o N
E
T
ASP NET: Web Services and Web Forms
JScript …
Windows Forms
7/5/16 XML NET với C# 7
Liên hệ giữa XML ADO.NET
Sync
Controls, Designers, Code-gen, etc
DataSet
XSL/T, X-Path, Validation, etc
(5)7/5/16
XML NET
q XML: chuẩn công nghiệp, kỹ thuật kết nối ứng
dụng
q .NET: tảng công nghệ MS nhằm phát triển ứng
dụng phân tán
q XML chất gắn kết thành phần (components)
trong NET lại với
7/5/16 XML NET với C# 9
XML.NET Web Services
Client
Web
Service Web
Service Web
Service Service Web
Client XML
XML XML
XML
XML
(6)7/5/16
Các mơ hình phân tích XML
q Các mơ hình phân tích XML thơng dụng
q Sử dụng mơ hình DOM (Document Object Model)
q Mơ hình SAX(Simple API for XML): sử dụng mơ hình đẩy liệu (push
model parsing)
q Mơ hình phân tích kéo liệu (pull model parsing)
q .NET Framework hỗ trợ hai mơ hình
q Mơ hình pull
q Mơ hình DOM
q Những thuận lợi giới hạn mơ hình?
7/5/16 XML NET với C# 11
Mơ hình DOM
q Phân tích XML nhớ
q Một cấu trúc tạo nhớ, mô tả nội dung tài liệu XML
q Mơ hình dùng có bạn cần duyệt động (dynamically
navigate) thực thi insert, update delete nội dung tài liệu XML
q Khơng thích hợp bạn cần phân tích cấu trúc XML từ
đầu tới cuối theo kiểu read-only
q Ảnh hưởng nhớ: Nạp tệp XML lớn vào DOM có
(7)7/5/16
Phân tích sử dụng DOM
<?xmlversion="1.0"?> <Books>
<BookISBN="0355605172”> <Title>Beginning XML</Title> <Price>40.00</Price>
</Book>
<BookISBN="0415205173”> <Title>XML Step by Step</Title> <Price>50.00</Price>
</Book> </Books>
7/5/16 XML NET với C# 13
DOM parsing – truy cập chỉnh sử phần liệu
staticvoid Main(string[] args) {
XmlDocument xmlDoc = newXmlDocument(); xmlDoc.Load("books.xml");
XmlNodeList priceNodes = xmlDoc.GetElementsByTagName("Price"); double price;
foreach(XmlNode priceNode in priceNodes) {
price = Convert.ToDouble(priceNode.InnerText); if (price >= 50)
{
price = price - (5 * price / 100); //Cap nhat noi dung vao the
priceNode.InnerText = price.ToString(); }
}
//Luu nhung thay doi vao file