LINQ TO XML .NET 4.0      WINP1.C24
Nội dung    Tổng quan về XML và LINQ        Truy vấn XML bằng LINQ        Tạo và Biến đổi một tài liệu XML    Danh sách nh...
Tổng quan về XML và LINQ3                              SE-PRO
Tổng quan về XML và LINQ                                Lịch sử hình thành                                 2005           ...
Tổng quan về XML và LINQ                               • Thiết kế nhằm trình bày dữ                                      ...
Tổng quan về XML và LINQ             XML đang thay đổi web như thế                         nào?Đơn giản hóa việc   Cho phé...
Các thành phần của một file xml                                             Bảng mã lưu Phần              GameData.xmlkhai...
Giới thiệu về LINQLINQ (Language Integrated Query) – Ngôn ngữ truy vấn tích hợp - Ngôn ngữ thống nhất cách thức truy xuất...
Giới thiệu về LINQ• LINQ được phân thành 3 loại:   LINQ to Objects   LINQ to XML   LINQ to SQL• Lợi ích sử dụng LINQ N...
Nội dung     Tổng quan về XML và LINQ          Truy vấn XML bằng LINQ         Tạo và Biến đổi một tài liệu XML     Danh sá...
LINQ TO XML(1) LINQ to XML cung cấp một giao diện lập trình XML. LINQ to XML sử dụng những ngôn ngữ mới nhất của .NETLan...
LINQ TO XML(2) Sử dụng LINQ to XML bạn có thể:   Load XML từ nhiều file hoặc luồng.   Xuất XML ra file hoặc luồng.   T...
Truy vấn XML bằng LINQ(1) IEnumerable<XElement> Descendants( string ElementName)   Trả ra một Collections XElement giúp ...
Truy vấn XML bằng LINQ(2)XElement Parent();      Trả ra một XElement giúp bạn truy xuất đến Element       cha(chứa nó)....
Truy vấn XML bằng LINQ(4)Ba phần cơ bản của một truy vấn XML1. Có được các dữ liệu nguồn.                  Lấy nội dung ...
Nội dung     Tổng quan về XML và LINQ         Truy vấn XML bằng LINQ         Tạo và Biến đổi một tài liệu XML     Danh sác...
Tạo và Biến đổi một tài liệu XMLTạo một tài liệu XML:Ta sử dụng hàm khởi tạo XDocument();       XDocument(XDeclaration xd...
Tạo và Biến đổi một tài liệu XMLTạo một tài liệu XML:Code:                                           GameData.xmlusing Sys...
Tạo và Biến đổi một tài liệu XMLHoặc táo bạo hơn một chút với phương thức Parse()Code:                                    ...
Thêm một Element(1)           • void Add( XElement content);     Add   • Thêm content như là một Node con vào đầu Element ...
Thêm một Element(2)                    • void Add( XElement content);       Add          • Thêm content như là một Node co...
Thêm một Element(3)                    • void AddFist( XElement content);  AddFist                    • Thêm content như l...
Thêm một Element(4)                             • void AddAfterSelf( XElement content);  AddAfterSelf               • Chèn...
Thêm một Element(5)                             • void AddBeforeSelf( XElement content);AddBeforeSelf                • Chè...
Thêm một Element(6)Kết luận: Trong hai 4 ví dụ trên thì hai hàm Add() và AddAfterSelf() cho cùng một kếtquả chỉ khác nhau...
Cập nhật một Element(1)            • VD: XElement XE; XE.Value = “123”; Value      • Một dạng Properties giúp đặt giá trị ...
Cập nhật một Element(2)                 • VD: XElement XE; XE.Value = “123”; Value           • Một dạng Properties giúp đặ...
Cập nhật một Element(3)            • SetValue(object value); SetValue   • Đặt giá trị cho element hiện tại giá trị là valu...
Cập nhật một Element(3)                            • SetAttributeValue(XName name, object value); SetAttributeValue       ...
Cập nhật một Element(4)                              • SetElementValue(XName name, object value);  SetElementValue        ...
Xóa Element(1)                        • Remove();         Remove         • Xóa node hiện tại từ element parent            ...
Xóa Element(2)                         • Remove();       Remove                         • Xóa node hiện tại từ element par...
Xóa Element(3)                    • RemoveAll();      RemoveAll     • Xóa tất cả các Attribute và Node con của tài liệu XM...
Xóa Element(4)  RemoveAttributes         • RemoveAttributes();                           • Xóa Attribute của element hiện ...
Xóa Element(5)                          • RmoveNode();      RemoveNodes         • Xóa node con của một XElement hoặc của t...
Nội dung     Tổng quan về XML và LINQ         Truy vấn XML bằng LINQ        Tạo và Biến đổi một tài liệu XML     Danh sách...
Danh sách nhóm và tài liệu tham khảo                    Danh sách thành viên nhóm  STT           Tên                  MSSV...
WINP1.C24
Upcoming SlideShare
Loading in …5
×

LINQ TO XML

682
-1

Published on

How to use Linq to XML in C# .NET

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
682
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
52
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

LINQ TO XML

  1. 1. LINQ TO XML .NET 4.0 WINP1.C24
  2. 2. Nội dung Tổng quan về XML và LINQ Truy vấn XML bằng LINQ Tạo và Biến đổi một tài liệu XML Danh sách nhóm và tài liệu tham khảo2 SE-PRO
  3. 3. Tổng quan về XML và LINQ3 SE-PRO
  4. 4. Tổng quan về XML và LINQ Lịch sử hình thành 2005 1986 XML v6.0 SGML ( Standard 1996GeneralizedMarkup Language)ra đời. Rắc rối, không  XML (eXtensiblethích hợp cho việc 1991 Markuptruyền tải thông tin Language)version 1.0 ra đời giải quyết được các nhược  HTML (Hyper Text Markup điểm trên Language) ra đời. Chú trọng đến việc hiển thị thông tin hơn là truyền tải, còn nhiều nhược điểm 4 SE-PRO
  5. 5. Tổng quan về XML và LINQ • Thiết kế nhằm trình bày dữ c nhauliệu. • Mô tả u o thông tin • thông tin 5 SE-PRO
  6. 6. Tổng quan về XML và LINQ XML đang thay đổi web như thế nào?Đơn giản hóa việc Cho phép mã hóa Cho phép tìm kiếm trao đổi dữ liệu thông minh thông minh 6 SE-PRO
  7. 7. Các thành phần của một file xml Bảng mã lưu Phần GameData.xmlkhai báo <? xml version="1.0" encoding="utf-8“ standalone = "yes“ ?> <!--Thông tin Level --> Chú thích Thẻ <Levels>bắt đầu <Level levelIndex="1"> <ImagePath>Girl.jpg</ImagePath> Một <Rows>3</Rows> Phần <Cols>3</Cols> Element thân </Level> của <Level levelIndex=“2“ > tài <ImagePath>Lady.jpg</ImagePath> Attribute liệu <Rows>4</Rows> <Cols>4</Cols> Một Tag </Level> </Levels> Thẻ kết thúc 7 SE-PRO
  8. 8. Giới thiệu về LINQLINQ (Language Integrated Query) – Ngôn ngữ truy vấn tích hợp - Ngôn ngữ thống nhất cách thức truy xuất dữ liệu trong .NET.Được phát triển từ năm 2003, và được công bố tại Hội nghị Microsoft Professional Developers vào 2005 do Anders Hejlsberg và nhóm của ông đã trình bày.Được tích hợp sẵn trong Visual Studio 2008 (.NET 3.5). 8 SE-PRO
  9. 9. Giới thiệu về LINQ• LINQ được phân thành 3 loại: LINQ to Objects LINQ to XML LINQ to SQL• Lợi ích sử dụng LINQ Nó cung cấp một cách chung để truy xuất dữ liệu từ bất kỳ nguồn nào với cùng một cú pháp. Giúp thực hiện truy vấn một cách dễ dàng hơn. Được tích hợp như cú pháp của ngôn ngữ lập trình. 9 SE-PRO
  10. 10. Nội dung Tổng quan về XML và LINQ Truy vấn XML bằng LINQ Tạo và Biến đổi một tài liệu XML Danh sách nhóm và tài liệu tham khảo10 SE-PRO
  11. 11. LINQ TO XML(1) LINQ to XML cung cấp một giao diện lập trình XML. LINQ to XML sử dụng những ngôn ngữ mới nhất của .NETLanguage Framework và được nâng cấp, thiết kế lại với giaodiện lập trình XML Document object Model (DOM). Tuynhiên nó cung cấp mô hình đối tượng mới đơn giản hơn vàdễ thao tác hơn để làm việc. LINQ to XML có cấu trúc truy vấn tương tự SQL. Khả năng sử dụng kết quả truy vấn là tham số cho đốitượng XElement và XAttribute cho phép một phươngpháp mạnh mẽ để tạo ra cây XML11 SE-PRO
  12. 12. LINQ TO XML(2) Sử dụng LINQ to XML bạn có thể:  Load XML từ nhiều file hoặc luồng.  Xuất XML ra file hoặc luồng.  Truy vấn cây XML bằng những truy vấn LINQ.  Thao tác cây XML trong bộ nhớ.  Biến đổi cây XML từ dạng này sang dạng khác.12 SE-PRO
  13. 13. Truy vấn XML bằng LINQ(1) IEnumerable<XElement> Descendants( string ElementName)  Trả ra một Collections XElement giúp bạn truy xuất đến Element có tên ElementName. IEnumerable<XElement> Ancestor();  Trả ra một Collections các XElement chứa nó (parent). IEnumerable<XElement> ElementBeforeSelf();  Trả ra một Collections các XElement đứng trước Element hiện tại. IEnumerable<XElement> ElementAfterSelf();  Trả ra một Collections các XElement đứng sau Element hiện tại. 13 SE-PRO
  14. 14. Truy vấn XML bằng LINQ(2)XElement Parent();  Trả ra một XElement giúp bạn truy xuất đến Element cha(chứa nó).bool HasElement();  Kiểm tra xem Element hiện tại có Element con nào không.bool HasAttribute();  Kiểm tra xem Element hiện tại có Attribute nào không.void Save( string URL);  Lưu một tài liệu XML xuống file URLbool IsEmpty();  Kiểm tra xem Element hiện tại có rỗng không.14 SE-PRO
  15. 15. Truy vấn XML bằng LINQ(4)Ba phần cơ bản của một truy vấn XML1. Có được các dữ liệu nguồn. Lấy nội dung tag Rows của2. Tạo các truy vấn. Element có levelIndex == 23. Thực hiện các truy vấn.using System.Xml.Linq; GameData.xml... <? xml version="1.0" encoding="utf-8"?>XDocument XDoc = new <!--Thông tin Level -->XDocument.Load(“GameData.xml”); <Levels> <Level levelIndex="1">var query = from q in <ImagePath>Girl.jpg</ImagePath>XDoc.Descendants(“Levels”).Elements(“Level”) <Rows>3</Rows>where (int)q.XAttribute(“levelIndex”) == 2 <Cols>3</Cols>select q; </Level> <Level levelIndex=“2">foreach( var p in query) <ImagePath>Boy.jpg</ImagePath>{ <Rows>4</Rows> System.Console.WriteLine(“Rows: {0}”, <Cols>4</Cols> p.Element(“Rows”).Value); </Level>} </Levels> 15 SE-PRO
  16. 16. Nội dung Tổng quan về XML và LINQ Truy vấn XML bằng LINQ Tạo và Biến đổi một tài liệu XML Danh sách nhóm và tài liệu tham khảo16 SE-PRO
  17. 17. Tạo và Biến đổi một tài liệu XMLTạo một tài liệu XML:Ta sử dụng hàm khởi tạo XDocument(); XDocument(XDeclaration xd, param object[] content); Trong đó:  XDeclaration(string version, string encoding, string standalone) version là phiên bản của tài liệu “1.0”. encoding là bảng mã lữu trữ “UTF-8”. standalone tồn tại một mình hay không “Yes” hoặc “No”. Thường thì không có thuộc tính này cũng không xao cả.  object[] là danh sách các đối tượng cần đưa vào tài liệu:  XComment(string comment ) Chứa chú thích cho tài liệu comment = “Chú thích đây” sẽ cho kết quả <!-- Chú thích đây --!>  XElement( XName name, param object[] content) • XName là tên của Element <name> </name> •object[] tương tự object[] nói ở trên. Dùng hàm Save( string URL ) để lưu xuống file URL17 SE-PRO
  18. 18. Tạo và Biến đổi một tài liệu XMLTạo một tài liệu XML:Code: GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin Level --> <Levels>XDocument XDoc = new XDocument( <Level levelIndex="1">( <ImagePath>Girl.jpg</ImagePath> new XDeclaration("1.0", "utf-8”), <Rows>3</Rows> new XComment("Thông tin Level "), <Cols>3</Cols> new XElement(“Level", </Level> new XAttribute(“levelIndex“,1), </Levels> new XElement("ImagePath", “Girl.jpg”), new XElement("Rows", 3), new XElement(“Cols", 3),);XDoc. Save(“GameData.xml”); 18 SE-PRO
  19. 19. Tạo và Biến đổi một tài liệu XMLHoặc táo bạo hơn một chút với phương thức Parse()Code: GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin Level --> <Levels>XDocument XDoc = new XDocument( <Level levelIndex="1"> new XDeclaration("1.0", "utf-8", "yes"), <ImagePath>Girl.jpg</ImagePath> new XComment("Thông tin Level "), <Rows>3</Rows> new XElement.Parse( <Cols>3</Cols> “<Levels> </Level> <Level levelIndex="1"> </Levels> <ImagePath>Girl.jpg</ImagePath> <Rows>3</Rows> <Cols>3</Cols> </Level> </Levels>” ));XDoc. Save(“GameData.xml”); 19 SE-PRO
  20. 20. Thêm một Element(1) • void Add( XElement content); Add • Thêm content như là một Node con vào đầu Element hiện tại. • void AddFist( XElement content);AddFist • Thêm content như là một Node con vào cuối Element hiện tại. • void AddAfterSelf( XElement content); AddAfterSelf • Chèn một element vào sau element hiện tại • void AddBeforeSelf( XElement content);AddBeforeSelf • Chèn một element vào trước element hiện tại20 SE-PRO
  21. 21. Thêm một Element(2) • void Add( XElement content); Add • Thêm content như là một Node con vào cuối Element hiện tại. Code: Add một XElement vào trong <Levels>_</Levels> GameData.xml using System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> ... <!--Thông tin mỗi Level trong game--> <Levels> XDocument XDoc = <Level levelIndex="1"> <Level levelIndex="1"> new XDocument.Load(“GameData.xml”); <ImagePath>Girl.jpg</ImagePath> <ImagePath>Girl.jpg</ImagePath> <Rows>3</Rows> <Rows>3</Rows> XDoc.Element ("Levels“).Add( <Cols>3</Cols> <Cols>3</Cols> new XElement( </Level> </Level> "Level“, </Levels> <Level levelIndex=“2"> new XAttribute(“levelIndex", 2), new XElement("ImagePath", “Laydy.jpg”), <ImagePath>Lady.jpg</ImagePath> new XElement("Rows“, 3), <Rows>3</Rows> new XElement("Cols", 4) <Cols>4</Cols> ) </Level> ); </Levels> XDoc. Save(“GameData.xml”);XDoc.Add(.......); Error !  Vị trí cần chèn vào không phải là một XElement 21 SE-PRO
  22. 22. Thêm một Element(3) • void AddFist( XElement content); AddFist • Thêm content như là một Node con vào đầu Element hiện tại. Code: Add một XElement vào trong <Levels>_</Levels> GameData.xml using System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> <!--Thông tin mỗi Level trong game--> ... <Levels> XDocument XDoc = <Level levelIndex="1"> <Level levelIndex=“2"> new XDocument.Load(“GameData.xml”); <ImagePath>Girl.jpg</ImagePath> <ImagePath>Lady.jpg</ImagePath> <Rows>3</Rows> <Rows>3</Rows> XDoc.Element ("Levels“).AddFirst( <Cols>3</Cols> <Cols>4</Cols> new XElement( </Level> </Level> "Level“, </Levels> <Level levelIndex="1"> new XAttribute(“levelIndex", 2), <ImagePath>Girl.jpg</ImagePath> new XElement("ImagePath", “Laydy.jpg”), <Rows>3</Rows> new XElement("Rows“, 3), <Cols>3</Cols> new XElement("Cols", 4) </Level> ) </Levels> ); XDoc. Save(“GameData.xml”); XDoc.Add(.......); Error !  Vị trí cần chèn vào không phải là một XElement. 22 SE-PRO
  23. 23. Thêm một Element(4) • void AddAfterSelf( XElement content); AddAfterSelf • Chèn một element vào sau element hiện tạiCode: Add một XElement sau <Level levelIndex="1“> GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game-->XDocument XDoc = <Levels> <Level levelIndex="1"> <Level levelIndex="1"> new XDocument.Load(“GameData.xml”); <ImagePath>Girl.jpg</ImagePath> <ImagePath>Girl.jpg</ImagePath> <Rows>3</Rows> <Rows>3</Rows>XDoc.Descendants(“Levels”).Elements <Cols>3</Cols> <Cols>3</Cols>("Level“).Last().AddAfterSelf( </Level> </Level> new XElement( </Levels> <Level levelIndex=“2"> "Level“, new XAttribute(“levelIndex", 2), <ImagePath>Lady.jpg</ImagePath> new XElement("ImagePath", “Laydy.jpg”), <Rows>3</Rows> new XElement("Rows“, 3), <Cols>4</Cols> new XElement("Cols", 4) </Level> ) </Levels>);XDoc. Save(“GameData.xml”); 23 SE-PRO
  24. 24. Thêm một Element(5) • void AddBeforeSelf( XElement content);AddBeforeSelf • Chèn một element vào trước element hiện tạiCode: Add một XElement trước <Level levelIndex="1“> GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game-->XDocument XDoc = <Levels> <Level levelIndex="1"> <Level levelIndex=“2"> new XDocument.Load(“GameData.xml”); <ImagePath>Girl.jpg</ImagePath> <ImagePath>Lady.jpg</ImagePath> <Rows>3</Rows> <Rows>3</Rows>XDoc.Descendants(“Levels”).Elements <Cols>3</Cols> <Cols>4</Cols>("Level“).Last().AddBeforeSelf( </Level> </Level> new XElement( </Levels> <Level levelIndex="1"> "Level“, new XAttribute(“levelIndex", 2), <ImagePath>Girl.jpg</ImagePath> new XElement("ImagePath", “Laydy.jpg”), <Rows>3</Rows> new XElement("Rows“, 3), <Cols>3</Cols> new XElement("Cols", 4) </Level> ) </Levels>);XDoc. Save(“GameData.xml”); 24 SE-PRO
  25. 25. Thêm một Element(6)Kết luận: Trong hai 4 ví dụ trên thì hai hàm Add() và AddAfterSelf() cho cùng một kếtquả chỉ khác nhau ở vị trí Add vào:o XDoc.Element ("Levels“).Add()o XDoc.Descendants(“Levels”).Elements ("Level“).Last().AddAfterSelf() Tương tự với hai hàm AddFirst() và AddBeforeSelf(). 25 SE-PRO
  26. 26. Cập nhật một Element(1) • VD: XElement XE; XE.Value = “123”; Value • Một dạng Properties giúp đặt giá trị cho một element một cách trực tiếp. • SetValue(object value); SetValue • Đặt giá trị cho element hiện tại giá trị là value vì là kiểu object nên nó cũng có thể là cả một XElement. • SetAttributeValue(XName name, object value);SetAttributeValue • Đặt giá trị value cho “attribute” của element tên name. • SetElementValue(XName name, object value); SetElementValue • Đặt giá trị cho “element” tên name giá trị là value vì là kiểu object nên nó cũng có thể là một XElement.26 SE-PRO
  27. 27. Cập nhật một Element(2) • VD: XElement XE; XE.Value = “123”; Value • Một dạng Properties giúp đặt giá trị cho một element một cách trực tiếp.Muốn cập nhật phải tìm được XElement trong tài liệu trước.Code: Thay đổi ImagePath của <Level levelIndex="1“> GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game--> <!--Thông tin mỗi Level trong game-->XDocument XDoc = <Levels> <Levels> new XDocument.Load(“GameData.xml”); <Level levelIndex="1"> <Level levelIndex="1"> <ImagePath>Girl.jpg</ImagePath> <ImagePath>Boy.jpg</ImagePath>foreach ( XElement x in XDoc.Descendants(“Levels”) ) <Rows>3</Rows>{ <Rows>3</Rows> <Cols>3</Cols> <Cols>3</Cols> if ( x.Attribute.Value.ToString().Equals(“1”) ) x.Element(“ImagePath”) = “Boy.jpg”; </Level> </Level>} </Levels> </Levels>XDoc. Save(“GameData.xml”);Tương tự với các thành phần khác của <Level levelIndex="1“> _</Levels>Như: <Rows> hay <Cols>... 27 SE-PRO
  28. 28. Cập nhật một Element(3) • SetValue(object value); SetValue • Đặt giá trị cho element hiện tại giá trị là value vì là kiểu object nên nó cũng có thể là cả một XElement.Tương tự như Properties Value: Chỉ cần thay x.Element(“ImagePath”) = “Boy.jpg”;Bằng x.SetValue(“Boy.jpg”); sẽ cho kết quả ý hệt.28 SE-PRO
  29. 29. Cập nhật một Element(3) • SetAttributeValue(XName name, object value); SetAttributeValue • Đặt giá trị value cho “attribute” của element tên name.Muốn cập nhật phải tìm được XElement trong tài liệu trước.Code: Thay đổi Attribute của <Level levelIndex="1“> GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game--> <!--Thông tin mỗi Level trong game-->XDocument XDoc = <Levels> <Levels> new XDocument.Load(“GameData.xml”); <Level levelIndex="1"> <Level Index=“3"> <ImagePath>Girl.jpg</ImagePath> <ImagePath>Girl.jpg</ImagePath>foreach ( XElement x in XDoc.Descendants(“Levels”) ) <Rows>3</Rows>{ <Rows>3</Rows> <Cols>3</Cols> <Cols>3</Cols> if ( x.Attribute.Value.ToString().Equals(“1”) ) x.SetAttributeValue( “Index”, 3); </Level> </Level>} </Levels> </Levels>XDoc. Save(“GameData.xml”); 29 SE-PRO
  30. 30. Cập nhật một Element(4) • SetElementValue(XName name, object value); SetElementValue • Đặt giá trị cho “element” tên name giá trị là value vì là kiểu object nên nó cũng có thể là một XElement.Code: Thay đổi Element <Level levelIndex="1“> GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game--> <!--Thông tin mỗi Level trong game-->XDocument XDoc = <Levels> <Levels> new Document.Load(“GameData.xml”); <Level levelIndex="1"> <Level Index=“3"> <ImagePath>Girl.jpg</ImagePath> <ImagePath>Laydy.jpg</ImagePath>foreach ( XElement x in XDoc.Descendants(“Levels”) ) <Rows>3</Rows> <Rows>5</Rows>{ <Cols>3</Cols> if ( x.Attribute.Value.ToString().Equals(“1”) ) <Cols>5</Cols> </Level> </Level> x.SetElementValue( “Level”, new XElement("Level“, </Levels> </Levels> new XAttribute(“levelIndex", 3), new XElement("ImagePath", “Laydy.jpg”), new XElement("Rows“, 5), new XElement("Cols", 5)  Bạn cũng có thể thay đổi tất cả các ) thành phần của Element hiện tại bằng ); cách tạo một value là một Element mới !}XDoc. Save(“GameData.xml”); 30 SE-PRO
  31. 31. Xóa Element(1) • Remove(); Remove • Xóa node hiện tại từ element parent của nó. • RemoveAll(); RemoveAll • Xóa tất cả các Attribute và Node con của tài liệu XML hoặc element hiện tại. • RemoveAttributes(); RemoveAttributes • Xóa “attribute” của element hiện tại . • RmoveNode(); RemoveNodes • Xóa node con của element hoặc của cả tài liệu XML.31 SE-PRO
  32. 32. Xóa Element(2) • Remove(); Remove • Xóa node hiện tại từ element parent của nó.Code: Xóa Tag của Level có Attribute == "1“ GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game--> <!--Thông tin mỗi Level trong game-->XDocument XDoc = <Levels> <Levels> new XDocument.Load(“GameData.xml”); <Level levelIndex="1"> <Level levelIndex="1"> <ImagePath>Girl.jpg</ImagePath> <ImagePath>Girl.jpg</ImagePath>foreach ( XElement x in XDoc.Descendants(“Level”) <Rows>3</Rows>{ <Rows>3</Rows> <Cols>3</Cols> </Levels> if ( x.Attribute.Value.ToString().Equals(“1”) ) x.Element(“Cols”).Remove(); </Level>} </Levels>XDoc. Save(“GameData.xml”); Sau khi xác định được Level có Attirbute levelIndex == “1” rồi tìm đến Tag<Cols> ta xóa nó. 32 SE-PRO
  33. 33. Xóa Element(3) • RemoveAll(); RemoveAll • Xóa tất cả các Attribute và Node con của tài liệu XML hoặc element hiện tại.Code: Xóa Element Level có Attribute == "1“ GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game-->XDocument XDoc = <Levels> new XDocument.Load(“GameData.xml”); <Level levelIndex="1"> <ImagePath>Girl.jpg</ImagePath>foreach ( XElement x in XDoc.Descendants(“Level”) ) <Rows>3</Rows>{ <Cols>3</Cols> if ( x.Attribute.Value.ToString().Equals(“1”) ) </Level> x.RemoveAll();} </Levels>XDoc. Save(“GameData.xml”); <? xml version="1.0" encoding="utf-8"?> Sau khi xác <!--Thông tin mỗi Level trong game-->định được Level Sau khi xóa, file <Levels>có Attirbute GameData.xmllevelIndex == “1” </Levels>thì xóa nó. 33 SE-PRO
  34. 34. Xóa Element(4) RemoveAttributes • RemoveAttributes(); • Xóa Attribute của element hiện tại .Code: Xóa Attribute của Level có Attribute == "1“ GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> <? xml version="1.0" encoding="utf-8"?>... <!--Thông tin mỗi Level trong game--> <!--Thông tin mỗi Level trong game--> <Levels> <Levels>XDocument XDoc = <Level levelIndex="1"> <Level > new <ImagePath>Girl.jpg</ImagePath> <ImagePath>Girl.jpg</ImagePath>XDocument.Load(“GameData.xml”); <Rows>3</Rows> <Rows>3</Rows> <Cols>3</Cols> <Cols>3</Cols>foreach ( XElement x in </Level> </Level>XDoc.Descendants(“Level”) ) </Levels> </Levels>{ if ( x.Attribute.Value.ToString().Equals(“1”) ) x.RemoveAttribute();  Sau khi xác định được Level có} Attirbute levelIndex == “1” thì xóaXDoc. Save(“GameData.xml”); Attribute nó. 34 SE-PRO
  35. 35. Xóa Element(5) • RmoveNode(); RemoveNodes • Xóa node con của một XElement hoặc của tài liệu XML(XDocument).Code: Xóa Tag <Size> của Level có Attribute == "1“ GameData.xmlusing System.Xml.Linq; <? xml version="1.0" encoding="utf-8"?> <? xml version="1.0" encoding="utf-8"?> <!--Thông tin mỗi Level trong game--> <!--Thông tin mỗi Level trong game-->... <Levels>XDocument XDoc = <Levels> <Level > <Level > new <ImagePath>Girl.jpg</ImagePath>XDocument.Load(“GameData.xml”); <ImagePath>Girl.jpg</ImagePath> <Size> </Level> <Rows>3</Rows> </Levels>foreach ( XElement x in <Cols>3</Cols>XDoc.Descendants(“Level”) ) </Size>{ </Level> if ( x.Attribute.Value.ToString().Equals(“1”) ) </Levels> x.Element(“Size”).RemoveNodes();}  Sau khi xác định được Level cóXDoc. Save(“GameData.xml”); Attirbute levelIndex == “1” thì xóa Node “Size” nó. 35 SE-PRO
  36. 36. Nội dung Tổng quan về XML và LINQ Truy vấn XML bằng LINQ Tạo và Biến đổi một tài liệu XML Danh sách nhóm và tài liệu tham khảo36 SE-PRO
  37. 37. Danh sách nhóm và tài liệu tham khảo Danh sách thành viên nhóm STT Tên MSSV Lớp 1 Nguyễn Văn Biên 10520138 WINP1.C24 2 Nguyễn Văn Thịnh 10520245 WINP1.C25 3 Lê Ngọc Anh 10520567 WINP1.C24 Tài liệu tham khảo:  http://msdn.microsoft.com  LINQ for Visual C# 2005 – Fabio Claudio Ferracchiati. 37 SE-PRO
  38. 38. WINP1.C24
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×