document type definition - linq to xml
TRANSCRIPT
LINQ to XML 1
LINQ to XMLCBGD: Nguyễn Trần Thi
Văn
NGÔN NGỮ ĐÁNH DẤU MỞ RỘNG
CHƯƠNG 09
Nội dungMục tiêu của bài họcGiới thiệu về LINQ to XML.Công dụng.Xây dựng một cây XML.Làm việc với XML namespace.Truy vấn cơ bản trên cây XMLBiến đổi trên cây XML
2LINQ to XML
3
Mục tiêu Trình bày được kiến trúc của LINQ và
những đặc điểm cơ bản nhất của LINQ to XML.
Tạo được cây XML từ tài liệu có sẵn và lưu trữ cây XML lên đĩa.
Thực hiện được các câu truy vấn dữ liệu trên cây XML.
Thêm xóa sửa phân tử/dữ liệu trên cây XML.
LINQ to XML
LINQ có tên đầy đủ Language Integrated Query.
LINQ được xây dựng để đơn giản hóa vấn đề truy xuất từ CSDL.
LINQ có thể thao tác với các dữ liệu trong XML document, SQL database, ....
LINQ bản thân nó không phải là một ngôn ngữ, nó là một mở rộng của .NET 3.0, được hỗ trợ từ phiên bản VS2008 trở đi.
4
Giới thiệu về LINQ (1)
LINQ to XML
LINQ là ngôn ngữ tích hợp truy vấn dữ liệu, cung cấp khả năng truy vấn trực tiếp dữ liệu từ CSDL.
Điểm mạnh của LINQ là có thể viết truy vấn cho nhiều đối tượng dữ liệu.
Hầu hết các truy vấn LINQ đều được thực hiện theo 3 bước sau:
• Xác định nguồn dữ liệu(obtain the data source).
• Tạo câu truy vấn(create the query).• Thực thi câu truy vấn(excute the query).
5
Giới thiệu về LINQ (2.)
LINQ to XML
LINQ to object• Sử dụng LINQ cho các đối tượng, dùng các
câu truy vấn đơn để thực thi các truy vấn LINQ.
LINQ to SQL• Mô hình hóa CSDL thành các lớp, có thể
chỉnh sửa và cập nhật dữ liệu. LINQ to dataset
• Cho phép sử dụng dataset như một nguồn dữ liệu bình thường bằng cú pháp truy vấn LINQ.
LINQ to XML6
Thành phần của LINQ (1)
LINQ to XML
7
Thành phần của LINQ (2)
LINQ to XML
Cung cấp một giao diện lập trình XML.
Được thiết kế với giao diện lập trình XML Document Object Model (DOM).
Có cấu trúc truy vấn tương tự SQL.
8
Giới thiệu về LINQ to XML (1)
LINQ to XML
9
Giới thiệu về LINQ to XML (2.)
LINQ to XML
Công dụng LINQ to XML Truy vấn cây XML bằng những truy
vấn LINQ. Load XML từ nhiều file. Xuất XML ra file. Thao tác với cây XML trong bộ nhớ. Biến đổi cây XML từ dạng này sang
dạng khác (thêm, xóa, sửa,…).
10LINQ to XML
Khai báo thư viện. Tạo một phần tử XML. Tạo thuộc tính. Tạo ghi chú. Xây dựng một cây XML. Đối tượng Xdeclaration. Các phương thức Load và Save.
11
Xây dựng cây XML
LINQ to XML
Để xử dụng được LINQ trong C# ta khai báo thêm thư viện sau:
12
using System.Xml.Linq;
Khai báo thư viện
LINQ to XML
Cấu trúc:
Hoặc tạo phần tử rỗng:
Ví dụ:
Tên phần tử Nội dung phần tử
13
Tạo một phần tử
LINQ to XML
Cấu trúc: Ví dụ:
Tên thuộc tính Giá trị thuộc tính
XElement myElement = new XElement("MSSV", new XAttribute("Type", "Char"), "08110176");
14
Tạo thuộc tính
LINQ to XML
Cấu trúc:
Ví dụ:
Nội dung ghi chúXComment cm = new XComment("This is a comment");
15
Tạo ghi chú
LINQ to XML
Cấu trúc:Name DescriptionXDocument() Initializes a new instance of the
XDocument class. XDocument(Object[]) Initializes a new instance of the
XDocument class with the specified content.
XDocument(XDocument) Initializes a new instance of the XDocument class from an existing XDocument object.
XDocument(XDeclaration,Object [])
Initializes a new instance of the XDocument class with the specified XDeclaration and content.
16
Tạo một cây XML
LINQ to XML
Ví dụ:
17
Tạo một cây XML
LINQ to XML
Cấu trúc:
Ví dụ:XDeclaration(string version,string encoding,string
standalone)
18
Tạo khai báo XML
LINQ to XML
Cấu trúc:
Ví dụ1:Save(String url) : Lưu nội dung xuống file.
19
XElement.Save và XDocument.Save
LINQ to XML
XElement.Save và XDocument.Save
Ví dụ2:
20LINQ to XML
XElement.Load và XDocument.Load
Cấu trúc:
Ví dụ1:Load(String url) : Đọc nội dung từ file.
XElement xmlTree1 = new XElement("Root", new XElement("Child", "content"));xmlTree1.Save("Tree.xml"); XElement xmlTree2 = XElement.Load("Tree.xml");Console.WriteLine(xmlTree2);
<Root> <Child>content</Child></Root> 21LINQ to XML
XElement.Load và XDocument.Load
Ví dụ2:XElement xmlTree1 = new XElement("Root", new XElement("Child", "content"));xmlTree1.Save("Tree.xml"); XDocument xmlTree2 = XDocument.Load("Tree.xml");Console.WriteLine(xmlTree2);
<Root> <Child>content</Child></Root> 22LINQ to XML
T o namespace trong XMLạ
Ví dụ 1:
23LINQ to XML
T o namespace trong XMLạ
Ví dụ 2:
24LINQ to XML
Truy v n LINQ trong NameSpaceấ
XML: np2.xml
C#:<np1:Root xmlns:np1="http://google.com" xmlns:np2="http://yahoo.com"> <np1:Child1>Content1</np1:Child1> <np1:Child1>Content2</np1:Child1> <np2:Child2>Content3</np2:Child2> <np2:Child2>Content4</np2:Child2></np1:Root>
XNamespace np = "http://google.com"; XElement doc = XElement.Load("np2.xml"); IEnumerable<XElement> cl = from el in doc.Elements(np+"Child1") select el; foreach (XElement el in cl) { Console.WriteLine((string)el); }
25LINQ to XML
Truy v n c b n trên cây XMLấ ơ ả Tìm phần tử. Lọc phần tử. Sắp xếp các phần tử. Kết hai cây XML. Nhóm các phần tử trong cây XML. Thêm phần tử, thuộc tính vào XML. Thay đổi phần tử, thuộc tính. Xóa phần tử, thuộc tính.
26LINQ to XML
Tìm ph n tầ ử
Tìm các phần tử SV có He = DH:
27LINQ to XML
Tìm ph n tầ ử
Tìm các phần tử SV có He = DH:
28LINQ to XML
L c ph n tọ ầ ử
Tìm các MSSV có He = DH:
0811017608110111
29LINQ to XML
L c ph n tọ ầ ử
Tìm các MSSV có He = DH:
30LINQ to XML
S p x p các ph n tắ ế ầ ử
Sắp xếp nội dung của phần tử price:
126787
31LINQ to XML
S p x p các ph n tắ ế ầ ử
Sắp xếp nội dung của phần tử price:
32LINQ to XML
K t ph n t XMLế ầ ử
Ví dụ 1: Kết các phần tử trong một tài liệu XML
Join.xml:
33LINQ to XML
K t ph n t XMLế ầ ử
Code C#:
34LINQ to XML
K t ph n t XMLế ầ ử Ví dụ 2: Kết các phần tử từ hai tài liệu
XML join1.xml join2.xml
35LINQ to XML
K t ph n t XMLế ầ ử
Code C#:
36LINQ to XML
Nhóm ph n t trong XMLầ ử
Ví dụ: Nhóm các phần tử <Sach> theo <Loai> sau đó tạo ra một tài liệu XML mới.
37LINQ to XML
Nhóm ph n t trong XMLầ ử
Code C#:
38LINQ to XML
Thêm ph n t , thu c tính vào XMLầ ử ộ
Cấu trúc:
Add (Object[])
Danh sách phần tử hoặc thuộc tính. Thêm vào cuối tài liệu XML
AddFirst (Object[])
Danh sách phần tử hoặc thuộc tính. Thêm vào đầu tài liệu XML39LINQ to XML
Thêm ph n t , thu c tính vào XMLầ ử ộ
Thêm phần tử:
40LINQ to XML
Thêm ph n t , thu c tính vào XMLầ ử ộ
Thêm thuộc tính:
41LINQ to XML
Thêm ph n t , thu c tính vào XMLầ ử ộ
Thêm phần tử vào vị trí bất kỳ:
AddAfterSelf (Object[])
Danh sách phần tử. Thêm vào sau phần tử hiện tại.
AddBeforeSelf (Object[])
Danh sách phần tử. Thêm vào trước phần tử hiện tại.42LINQ to XML
Thêm ph n t , thu c tính vào XMLầ ử ộ
Thêm phần tử vào vị trí bất kỳ:
43LINQ to XML
Thay đ i ph n t , thu c tính vào XMLổ ầ ử ộ
SetValue (Content)
Giá trị. Thay đổi giá trị của phần tử / thuộc tính.
SetElementValue (Xname,Value)
Tên phần tử cần thay. Thay đổi giá trị của phần tử.Giá trị cần thay đổi.
ReplaceWith (Object[])
Các phần tử. Thay phần tử này bằng phần tử khác44LINQ to XML
Thay đ i ph n t , thu c tính vào XMLổ ầ ử ộ
Thay đổi phần tử:
45LINQ to XML
Thay đ i ph n t , thu c tính vào XMLổ ầ ử ộ
Thay đổi thuộc tính:
46LINQ to XML
Xóa ph n t , thu c tính trong XMLầ ử ộ
RemoveAll()Xóa tất cả phần tử và thuộc tính.
RemoveAttributes() Xóa tất cả các thuộc tính.
Xnode.Remove ()
Phần tử / Thuộc tính Xóa phần tử / thuộc tính.47LINQ to XML
Xóa ph n t , thu c tính trong XMLầ ử ộ
Xóa thuộc tính:
48LINQ to XML
Xóa ph n t , thu c tính trong XMLầ ử ộ
Xóa phần tử:
49LINQ to XML
Tóm tắt chương
50LINQ to XML
HẾT CHƯƠNG
51LINQ to XML