document type definition - linq to xml

51
LINQ to XML 1 LINQ to XML CBGD: Nguyễn Trần Thi Văn NGÔN NGỮ ĐÁNH DẤU MỞ RỘNG CHƯƠNG 09

Upload: cong-thanh-nguyen

Post on 12-Jan-2017

836 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Document Type Definition - linq to xml

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

Page 2: Document Type Definition - linq to xml

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

Page 3: Document Type Definition - linq 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

Page 4: Document Type Definition - 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

Page 5: Document Type Definition - 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

Page 6: Document Type Definition - 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

Page 7: Document Type Definition - linq to xml

7

Thành phần của LINQ (2)

LINQ to XML

Page 8: Document Type Definition - 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

Page 9: Document Type Definition - linq to xml

9

Giới thiệu về LINQ to XML (2.)

LINQ to XML

Page 10: Document Type Definition - 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

Page 11: Document Type Definition - linq 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

Page 12: Document Type Definition - 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

Page 13: Document Type Definition - 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

Page 14: Document Type Definition - 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

Page 15: Document Type Definition - 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

Page 16: Document Type Definition - 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

Page 17: Document Type Definition - linq to xml

Ví dụ:

17

Tạo một cây XML

LINQ to XML

Page 18: Document Type Definition - 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

Page 19: Document Type Definition - 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

Page 20: Document Type Definition - linq to xml

XElement.Save và XDocument.Save

Ví dụ2:

20LINQ to XML

Page 21: Document Type Definition - linq 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

Page 22: Document Type Definition - linq 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

Page 23: Document Type Definition - linq to xml

T o namespace trong XMLạ

Ví dụ 1:

23LINQ to XML

Page 24: Document Type Definition - linq to xml

T o namespace trong XMLạ

Ví dụ 2:

24LINQ to XML

Page 25: Document Type Definition - linq 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

Page 26: Document Type Definition - linq 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

Page 27: Document Type Definition - linq to xml

Tìm ph n tầ ử

Tìm các phần tử SV có He = DH:

27LINQ to XML

Page 28: Document Type Definition - linq to xml

Tìm ph n tầ ử

Tìm các phần tử SV có He = DH:

28LINQ to XML

Page 29: Document Type Definition - linq to xml

L c ph n tọ ầ ử

Tìm các MSSV có He = DH:

0811017608110111

29LINQ to XML

Page 30: Document Type Definition - linq to xml

L c ph n tọ ầ ử

Tìm các MSSV có He = DH:

30LINQ to XML

Page 31: Document Type Definition - linq 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

Page 32: Document Type Definition - linq 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

Page 33: Document Type Definition - linq 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

Page 34: Document Type Definition - linq to xml

K t ph n t XMLế ầ ử

Code C#:

34LINQ to XML

Page 35: Document Type Definition - linq 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

Page 36: Document Type Definition - linq to xml

K t ph n t XMLế ầ ử

Code C#:

36LINQ to XML

Page 37: Document Type Definition - linq 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

Page 38: Document Type Definition - linq to xml

Nhóm ph n t trong XMLầ ử

Code C#:

38LINQ to XML

Page 39: Document Type Definition - linq 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

Page 40: Document Type Definition - linq to xml

Thêm ph n t , thu c tính vào XMLầ ử ộ

Thêm phần tử:

40LINQ to XML

Page 41: Document Type Definition - linq to xml

Thêm ph n t , thu c tính vào XMLầ ử ộ

Thêm thuộc tính:

41LINQ to XML

Page 42: Document Type Definition - linq 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

Page 43: Document Type Definition - linq 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

Page 44: Document Type Definition - linq 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

Page 45: Document Type Definition - linq to xml

Thay đ i ph n t , thu c tính vào XMLổ ầ ử ộ

Thay đổi phần tử:

45LINQ to XML

Page 46: Document Type Definition - linq to xml

Thay đ i ph n t , thu c tính vào XMLổ ầ ử ộ

Thay đổi thuộc tính:

46LINQ to XML

Page 47: Document Type Definition - linq 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

Page 48: Document Type Definition - linq to xml

Xóa ph n t , thu c tính trong XMLầ ử ộ

Xóa thuộc tính:

48LINQ to XML

Page 49: Document Type Definition - linq to xml

Xóa ph n t , thu c tính trong XMLầ ử ộ

Xóa phần tử:

49LINQ to XML

Page 50: Document Type Definition - linq to xml

Tóm tắt chương

50LINQ to XML

Page 51: Document Type Definition - linq to xml

HẾT CHƯƠNG

51LINQ to XML