LINQ to XML có thể dễ dàng truy cập đến các tính năng của LINQ như các toán tử LINQ, giao diện lập trình, v.v. Và do tích hợp trong .NET Framework nên LINQ to XML có thể sử dụng các tính năng mạnh mẽ của nó như debugging, compile time checking, strong typing, v.v.
Với LINQ to XML, việc nạp tài liệu XML vào bộ nhớ, việc đọc hay ghi tài liệu XML đến ổ đĩa hay bộ nhớ đều được thực hiện rất dễ dàng. Đồng thời với LINQ to XML, các nhà phát triển sẽ tiết kiệm nhiều công sức trong việc học và sử dụng các ngôn ngữ truy vấn XML phức tạp.
Sức mạnh của LINQ to XML chứa trong namespace System.Xml.Linq với 19 lớp cơ bản sau:
- XAttribute
- XCData
- XComment
- XContainer
- XDeclaration
- XDocument
- XDocumentType
- XElement
- XName
- XNamespace
- XNode
- XNodeDocumentOrderComparer
- XNodeEqualityComparer
- XObject
- XObjectChange
- XobjectChangeEventArgs
- XObjectEventHandler
- XProcessingInstruction
- XText
Đọc một tập tin XML dùng LINQ
Mã C#:
// tạo một chuỗi chứa định dạng XML string myXML = @" <Departments> <Department>Account</Department> <Department>Sales</Department> <Department>Pre-Sales</Department> <Department>Marketing</Department> </Departments>"; // chuyển chuỗi thành tài liệu XML XDocument xdoc = new XDocument(); xdoc = XDocument.Parse(myXML); // duyệt tài liệu XML var result = xdoc.Element("Departments").Descendants(); foreach (XElement item in result) { Console.WriteLine("Department Name - " + item.Value); }
Mã VB:
Dim myXML As String = " <Departments>" & vbCr & vbLf & "<Department>Account</Department>" & vbCr & vbLf & "<Department>Sales</Department>" & vbCr & vbLf & "<Department>Pre-Sales</Department>" & vbCr & vbLf & "<Department>Marketing</Department>" & vbCr & vbLf & "</Departments>" Dim xdoc As New XDocument() xdoc = XDocument.Parse(myXML) Dim result = xdoc.Element("Departments").Descendants() For Each item As XElement In result Console.WriteLine("Department Name - " + item.Value) Next
Kết quả:
Department Name - Account Department Name - Sales Department Name - Pre-Sales Department Name – Marketing
Thêm một node mới đến tài liệu XML
Mã C#
// tạo một chuỗi chứa định dạng XML string myXML = @" <Departments> <Department>Account</Department> <Department>Sales</Department> <Department>Pre-Sales</Department> <Department>Marketing</Department> </Departments>"; // chuyển chuỗi thành tài liệu XML XDocument xdoc = new XDocument(); xdoc = XDocument.Parse(myXML); //thêm phần tử mới vào cuối tài liệu XML (sau Marketing) xdoc.Element("Departments").Add(new XElement("Department", "Finance")); //thêm một phần tử mới vào đầu (trước Account) xdoc.Element("Departments").AddFirst(new XElement("Department", "Support")); // duyệt tài liệu XML var result = xdoc.Element("Departments").Descendants(); foreach (XElement item in result) { Console.WriteLine("Department Name - " + item.Value); }
Mã VB:
Dim myXML As String = "<Departments>" & vbCr & vbLf & "<Department>Account</Department>" & vbCr & vbLf & "<Department>Sales</Department>" & vbCr & vbLf & "<Department>Pre-Sales</Department>" & vbCr & vbLf & "<Department>Marketing</Department>" & vbCr & vbLf & "</Departments>" Dim xdoc As New XDocument() xdoc = XDocument.Parse(myXML) xdoc.Element("Departments").Add(New XElement("Department", "Finance")) xdoc.Element("Departments").AddFirst(New XElement("Department", "Support")) Dim result = xdoc.Element("Departments").Descendants() For Each item As XElement In result Console.WriteLine("Department Name - " + item.Value) Next
Kết quả:
Department Name - Support Department Name - Account Department Name - Sales Department Name - Pre-Sales Department Name - Marketing Department Name - Finance
Xoá một phần tử từ tài liệu XML
Mã C#
// tạo một chuỗi chứa định dạng XML string myXML = @"<Departments> <Department>Account</Department> <Department>Sales</Department> <Department>Pre-Sales</Department> <Department>Marketing</Department> </Departments>"; // chuyển chuỗi thành tài liệu XML XDocument xdoc = new XDocument(); xdoc = XDocument.Parse(myXML); //Xoá Sales xdoc.Descendants().Where(s =>s.Value == "Sales").Remove(); // duyệt tài liệu XML var result = xdoc.Element("Departments").Descendants(); foreach (XElement item in result) { Console.WriteLine("Department Name - " + item.Value); }
Mã VB:
Dim myXML As String = "<Departments>" & vbCr & vbLf & "<Department>Account</Department>" & vbCr & vbLf & "<Department>Sales</Department>" & vbCr & vbLf & "<Department>Pre-Sales</Department>" & vbCr & vbLf & "<Department>Marketing</Department>" & vbCr & vbLf & "</Departments>" Dim xdoc As New XDocument() xdoc = XDocument.Parse(myXML) xdoc.Descendants().Where(Function(s) s.Value = "Sales").Remove() Dim result = xdoc.Element("Departments").Descendants() For Each item As XElement In result Console.WriteLine("Department Name - " + item.Value) Next
Kết quả:
Department Name - Account Department Name - Pre-Sales Department Name - Marketing
Ý kiến bài viết