Bài giảng Tổng quan về .Net và C# - XML và .Net với C# - Phan Trọng Tiến

Tóm tắt Bài giảng Tổng quan về .Net và C# - XML và .Net với C# - Phan Trọng Tiến: ...L 40.00 XML Step by Step 50.00 7/5/16 XML và .NET với C# 13 DOM parsing – truy cập và chỉnh sử một phần dữ liệu static void Main(string[] args) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("books.xml"); XmlNodeList priceNodes = xmlDoc.GetElementsByTagName("Price"...t.WriteStartElement("Book"); wrt.WriteAttributeString("", "ISBN", "", "0355605172"); wrt.WriteStartElement("Title"); wrt.WriteString("XML Step by Step"); wrt.WriteEndElement(); wrt.WriteEndElement(); wrt.WriteEndElement(); wrt.Close(); 7/5/16 XML và .NET với C# 20 7/5/16 11 Sử ...ểu dữ liệu) q  System.Xml.Schema.XmlSchemaCollection chứa một cache của lược đồ XSD và XDR 7/5/16 XML và .NET với C# 26 7/5/16 14 Các biến đổi XSLT trong .NET q  XSL (Extensible Stylesheet Language) bao gồm 3 phần: q XSLT – XSL transformation q Xpath – XML path language q XSL-FO ...

pdf18 trang | Chia sẻ: havih72 | Lượt xem: 219 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Tổng quan về .Net và C# - XML và .Net với C# - Phan Trọng Tiến, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
7/5/16	
1	
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:  
7/5/16 XML và .NET với C# 1 
Mục tiêu 
q  Hiểu được XML là gì? Và ứng dụng XML. 
q  XML và hỗ trợ trong .NET 
q  Hiểu được các mô hình phân tích cấu trúc XML 
q  Giới thiệu thư viện XML.NET 
7/5/16 XML và .NET với C# 2 
7/5/16	
2	
Nội dung chính 
q  Tổng quan về XML 
q  XML và 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 trong .NET 
q  Kiểm tra tính hợp lệ XML trong .NET 
q  Áp dụng kiểu style sheet cho các tài liệu XML 
7/5/16 XML và .NET với C# 3 
Tổng quan XML 
q  XML (EXtensible Markup Language) được thiết kết để miêu 
tả dữ liệu 
q  Là ngôn ngữ đánh dấu giống như HTML 
q  Các thẻ (tags) là tự định nghĩa bởi người sử dụng 
q  Được dùng như một giao thức tích hợp giữa các ứng dụng 
q  Tiêu chuẩn công nghiệp được phát triển bởi W3C 
7/5/16 XML và .NET với C# 4 
7/5/16	
3	
Ví dụ một file XML 
 Windows XP SP2 
 This is the latest update pack provided by Microsoft. 
 Has Firewall Protection 
 Free 
 ~200 MB for Windows XP Home Edition 
7/5/16 XML và .NET với C# 5 
 Windows XP SP2 
 This is the latest update pack provided by Microsoft. 
 Has Firewall Protection 
 Free 
 ~200 MB for Windows XP Home Edition 
Root Element 
Cấu trúc XML 
Parent Element 
Child 
Element 
Attribute 
Content 
Declaration 
7/5/16 XML và .NET với C# 6 
7/5/16	
4	
.NET Framework 
Base Class Library 
Common Language Specification 
Common Language Runtime 
ADO .NET: Data and XML 
VB C++ C# 
V
isual Studio .N
ET 
ASP .NET: Web Services 
and Web Forms 
JScript  
Windows 
Forms 
7/5/16 XML và .NET với C# 7 
Liên hệ giữa XML và ADO.NET 
Sync 
DataReader 
SqlData- 
Reader 
OleDbData- 
Reader 
Controls, 
Designers, 
Code-gen, etc. 
DataSet 
XmlReader 
XmlText- 
Reader 
XmlNode- 
Reader 
XSL/T, X-Path, 
Validation, etc. 
XmlData- 
Document 
DataAdapter 
SqlData- 
Adapter 
OleDbData- 
Adapter 
7/5/16 XML và .NET với C# 8 
7/5/16	
5	
XML và .NET 
q  XML: là một chuẩn công nghiệp, là kỹ thuật kết nối các ứng 
dụng 
q  .NET: là nền tảng công nghệ của MS nhằm phát triển các ứng 
dụng phân tán 
q  XML là chất gắn kết giữa các thành phần (components) 
trong .NET lại với nhau 
7/5/16 XML và .NET với C# 9 
XML.NET và Web Services 
7/5/16 XML và .NET với C# 10 
Client 
Web 
Service Web 
Service 
Web 
Service Web Service 
Client 
XML 
XML XML 
XML 
XML 
XML 
HTML 
7/5/16	
6	
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 dữ liệu (push 
model parsing) 
q Mô hình phân tích kéo dữ 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 và giới hạn của mỗi mô hình? 
7/5/16 XML và .NET với C# 11 
Mô hình DOM 
q  Phân tích XML trong bộ nhớ 
q Một cây cấu trúc được tạo trong bộ nhớ, mô tả nội dung của tài liệu XML 
q  Mô hình này dùng khi có bạn cần duyệt động (dynamically 
navigate) và thực thi insert, update và delete nội dung trong tài 
liệu XML 
q  Không thích hợp khi bạn chỉ 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 bộ nhớ: Nạp một tệp XML lớn vào trong DOM có 
thể làm cạn kiệt tài nguyên 
7/5/16 XML và .NET với C# 12 
7/5/16	
7	
Phân tích sử dụng DOM 
 Beginning XML 
 40.00 
 XML Step by Step 
 50.00 
7/5/16 XML và .NET với C# 13 
DOM parsing – truy cập và chỉnh sử một phần dữ liệu 
 static void Main(string[] args) 
 { 
 XmlDocument xmlDoc = new XmlDocument(); 
 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 
 xmlDoc.Save("books.xml"); 
 } 
7/5/16 XML và .NET với C# 14 
7/5/16	
8	
Lõi namespace của XML.NET 
q  System.Xml 
q Là namespace cung cấp toàn bộ các lớp chuẩn (standards-based) hỗ trợ 
phân tích (parsing) XML 
q Hỗ trợ các chuẩn 
q XML 1.0 và các namespace XML 
q XML schemé 
q Xpath 
q XSLT 
q DOM mức 2 
q SOAP 1.1 (được sử dụng trong các đối tượng tuần tự) 
7/5/16 XML và .NET với C# 15 
Lõi namespace của XML.NET 
q  System.Xml.Xsl 
q Chứa các lớp hỗ trợ biến đổi XSLT 
q  System.XML.XPath 
q Chứa các lớp hỗ trợ thực thi các truy vấn XPath 
q  System.Xml.Schema 
q Chứa các lớp chuẩn hỗ trợ cho W3C XML schemas 
q  System.Xml.Serialization 
q Chứa các lớp được dùng cho tuần tự hoặc không tuần tự các đối tượng 
XML 
7/5/16 XML và .NET với C# 16 
7/5/16	
9	
Tự động phát sinh XML trong .NET 
q  Các tuỳ chọn có sẵn để lập trình với XML 
q Non-cached, forward-only streaming 
q Lập trình với DOM 
q  Các thuận lợi và giới hạn của mỗi phương thức 
7/5/16 XML và .NET với C# 17 
Sử dụng lớp XmlTextWriter 
q  Thực thi trong namespace System.Xml 
q  Thừa kế từ lớp trừu tượng System.Xml.XmlWriter 
q  Đượng sử dụng lập trình phát sinh XML non-cached, kiểu 
forward-only 
q  Có thể được dùng để phát sinh XML tới một file trên disk và 
các đối tượng .NET Framework Stream/TextWriter 
7/5/16 XML và .NET với C# 18 
7/5/16	
10	
Sử dụng lớp XmlTextWriter 
 XML Step by Step 
7/5/16 XML và .NET với C# 19 
Sử dụng lớp XmlTextWriter 
XmlTextWriter wrt = new XmlTextWriter("books.xml",null); 
wrt.Formatting = System.Xml.Formatting.Indented; 
wrt.WriteStartDocument(false); 
wrt.WriteComment("Catalog fragment"); 
wrt.WriteDocType("Books", null, "books.dtd", null); 
wrt.WriteStartElement("Books"); 
wrt.WriteStartElement("Book"); 
wrt.WriteAttributeString("", "ISBN", "", "0355605172"); 
wrt.WriteStartElement("Title"); 
wrt.WriteString("XML Step by Step"); 
wrt.WriteEndElement(); 
wrt.WriteEndElement(); 
wrt.WriteEndElement(); 
wrt.Close(); 
7/5/16 XML và .NET với C# 20 
7/5/16	
11	
Sử dung DOM 
XmlDocument xmldoc = new XmlDocument(); 
XmlDeclaration xmlDecl = xmldoc.CreateXmlDeclaration("1.0", null, null); 
xmldoc.AppendChild(xmlDecl); 
XmlDocumentType docType = xmldoc.CreateDocumentType("Books", null, 
"c:\books.dtd", null); 
xmldoc.AppendChild(docType); 
XmlComment xmlComment = xmldoc.CreateComment("Catalog fragment"); 
xmldoc.AppendChild(xmlComment); 
xmldoc.AppendChild(xmldoc.CreateElement("Books")); 
xmldoc.DocumentElement.AppendChild(GenerateBookNode(xmldoc, "XML 
Step by Step", "0355605172")); 
xmldoc.Save("c:\books2.xml"); 
7/5/16 XML và .NET với C# 21 
Sử dụng DOM 
private static XmlNode GenerateBookNode(XmlDocument xmldoc, 
String Title, String ISBN) 
 { 
 XmlNode bookNode; 
 bookNode = xmldoc.CreateElement("Book"); 
 bookNode.AppendChild(xmldoc.CreateElement("Title")); 
 bookNode.ChildNodes[0].InnerText = Title; 
bookNode.Attributes.Append(xmldoc.CreateAttribute("ISBN")); 
 bookNode.Attributes.GetNamedItem("ISBN").InnerText = 
ISBN; 
 return bookNode; 
 } 
7/5/16 XML và .NET với C# 22 
7/5/16	
12	
7/5/16 XML và .NET với C# 23 
Kiểm tra tính hợp lệ của XML 
q  Các lưu đồ (schema) miêu tả cấu trúc của file XML. Kiểm tra tính 
hợp lệ đảm bảo rằng mở rộng dữ liệu phù hợp với các quy tắc (ngữ 
pháp) được yêu cầu bởi lược đồ 
7/5/16 XML và .NET với C# 24 
7/5/16	
13	
Kiểm tra tính hợp lệ của XML 
q  Có 3 ngôn ngữ được đề nghị: 
q Document Type Definitions (DTD) 
q XML Data Reduced schema (XDR) 
q XML Schema Definition language (XSD) 
q  XSD là tương lai. Các lược đồ có nhiều lợi thế hơn DTD: 
q Lược đồ sử dụng câu lệnh XML và có thể được dùng bởi một phân tích 
XML 
q Lược đồ hỗ trợ các kiểu dữ liệu (integer, string, Boolean) và tương thích 
với các kiểu dữ liệu khác 
7/5/16 XML và .NET với C# 25 
Lược đồ trong .NET 
q  Dữ liệu XML có thể được xác nhận (validate) cả 3 ngôn ngữ 
lược đồ sử dụng trong các lớp .NET 
q  System.Xml.XmlValidatingReader được dùng cho sự xác nhận 
q  System.Xml.Schema cung cấp chuẩn cơ sở cho lược đồ 
XML(cấu trúc và kiểu dữ liệu) 
q  System.Xml.Schema.XmlSchemaCollection chứa một cache 
của lược đồ XSD và XDR 
7/5/16 XML và .NET với C# 26 
7/5/16	
14	
Các biến đổi XSLT trong .NET 
q  XSL (Extensible Stylesheet Language) bao gồm 3 phần: 
q XSLT – XSL transformation 
q Xpath – XML path language 
q XSL-FO – XSL formatting objects 
q  XSLT là một ngôn ngữ để chuyển đổi các tài liệu XML thành 
các tài liệu thuần văn bản (text-based) 
q  Quá trình chuyển đổi bao gồm 3 loại: 
q File XML nguồn 
q File Stylesheet 
q File output: xml, html, v.v 
7/5/16 XML và .NET với C# 27 
XSLT trong .NET 
q  Thực thi dưới namespace System.Xml.Xsl 
q  Hỗ trợ theo khuyến nghị W3C XSLT 1.0 
q  Các lớp 
q XslTransform – biến đổi dữ liệu XML sử dụng một XSLT stylesheet 
q XslArgumentList – Cho phép các tham biến và các đối tượng được gọi 
trong stylesheet 
q XsltException – Trả về thông tin về exception trong khi xử lý một XSLT 
7/5/16 XML và .NET với C# 28 
7/5/16	
15	
Tổng quan XPath 
q  Là một truy vấn (query) cho XML – SQL của XML 
q  Được sử dụng để xác định các biểu thức truy vấn tới vị trí các 
nút trong tài liệu XML 
q  Được sử dụng trong XSLT stylesheets để xác định vị trí và áp 
dụng biến đổi tới các nút cụ thể trong một tài liệu XML 
q  Được sử dụng DOM code để xác định vị trí và xử lý các nút cụ 
thể 
7/5/16 XML và .NET với C# 29 
XPath trong .NET 
q  Các namespace liên quan 
q System.Xml 
q System.Xml.XPath 
q  Các lớp trong .NET Framework 
q XmlDocument, XmlNoteList và XmlNode 
q XPathDocument 
q XPathNavigator 
q XPathNodeIteractor 
q XPathExpression 
7/5/16 XML và .NET với C# 30 
7/5/16	
16	
Thực thi các truy vấn XPath 
q  Sử dụng đối tượng DOM của System.Xml 
q Các class thường được sử dụng: XMLDocument, XMLNodeList, 
XMLNode 
q Nạp tài liệu XML vào trong lớp XMLDocument 
q Sử dụng phương thức SelectNodes/SelectSingleNode của lớp 
XmlDocument để thực thi truy vấn XPath 
q Khởi gán trả về danh sách các node/node tới đối tượng XmlNodeList/
XmlNode 
q Sử dụng đối tượng XmlNode để duyệt qua XmlNodeList và xử lý kết quả 
7/5/16 XML và .NET với C# 31 
Thực hiện truy vấn XPath 
q  Ví dụ file XML “books.xml” 
 The C Programming language 
 XML Step by Step 
q  Ví dụ cần thực hiện truy vấn lấy tất cả tên những quyển sách 
bắt đầu bằng từ “XML” 
q Truy vấn XPath: //Title[starts-with(.,’XML’)] 
7/5/16 XML và .NET với C# 32 
7/5/16	
17	
Thực thi truy vấn XPath 
 static void Main(string[] args) 
 { 
 XmlDocument xmlDoc = new XmlDocument(); 
 xmlDoc.Load("books.xml"); 
 XmlNodeList matchingNodes = xmlDoc.SelectNodes("//Title[starts-
with(.,'XML')]"); 
 if (matchingNodes.Count == 0) 
 { 
 Console.WriteLine("No matching nodes were identified for the specified XPath 
query"); 
 } 
 else 
 { 
 foreach (XmlNode node in matchingNodes) 
 { 
 Console.WriteLine(node.Name + ":" + node.InnerText); 
 } 
 } 
 Console.ReadLine(); 
 } 
7/5/16 XML và .NET với C# 33 
Tổng kết 
q  Đã giới thiệu XML trong .NET 
q  Đã trình bày các mô hình phân tích XML trong .NET 
Framework 
q  Nghiên cứu về phân tích DOM trong .NET Framework 
q  Các namespace .NET liên quan trong XML 
q  Thực hiện lập trình tạo ra XML trong .NET 
q  Thực hiện lập trình kiểm tra hợp lệ các tài liệu XML 
q  Thực thi biến đổi XSLT 
q  Thực thi truy vấn XPath 
7/5/16 XML và .NET với C# 34 
7/5/16	
18	
7/5/16 XML và .NET với C# 35 
Tài liệu tham khảo 
q   
q  
2.ppt 
q  
parser.htm 
q  https://support.microsoft.com/en-us/kb/317463 
7/5/16 XML và .NET với C# 36 

File đính kèm:

  • pdfbai_giang_tong_quan_ve_net_va_c_xml_va_net_voi_c_phan_trong.pdf