📅  最后修改于: 2020-11-21 07:08:36             🧑  作者: Mango
LINQ to XML提供了对所有LINQ功能(如标准查询运算符,编程接口等)的轻松访问。集成在.NET框架中的LINQ to XML还充分利用了.NET框架功能,如调试,编译时检查,强类型化还有更多要说的。
在使用LINQ to XML时,将XML文档加载到内存很容易,并且查询和文档修改也更加容易。也可以将内存中存在的XML文档保存到磁盘并进行序列化。它消除了开发人员学习稍微复杂的XML查询语言的需要。
LINQ to XML在System.Xml.Linq命名空间中具有强大的功能。它具有使用XML所需的全部19个必需类。这些类是以下类。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace LINQtoXML {
class ExampleOfXML {
static void Main(string[] args) {
string myXML = @"
Account
Sales
Pre-Sales
Marketing
";
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(myXML);
var result = xdoc.Element("Departments").Descendants();
foreach (XElement item in result) {
Console.WriteLine("Department Name - " + item.Value);
}
Console.WriteLine("\nPress any key to continue.");
Console.ReadKey();
}
}
}
Imports System.Collections.Generic
Imports System.Linq
Imports System.Xml.Linq
Module Module1
Sub Main(ByVal args As String())
Dim myXML As String = "" & vbCr & vbLf &
"Account " & vbCr & vbLf &
"Sales " & vbCr & vbLf &
"Pre-Sales " & vbCr & vbLf &
"Marketing " & vbCr & vbLf &
" "
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
Console.WriteLine(vbLf & "Press any key to continue.")
Console.ReadKey()
End Sub
End Module
编译并执行以上C#或VB的代码时,将产生以下结果-
Department Name - Account
Department Name - Sales
Department Name - Pre-Sales
Department Name - Marketing
Press any key to continue.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace LINQtoXML {
class ExampleOfXML {
static void Main(string[] args) {
string myXML = @"
Account
Sales
Pre-Sales
Marketing
";
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(myXML);
//Add new Element
xdoc.Element("Departments").Add(new XElement("Department", "Finance"));
//Add new Element at First
xdoc.Element("Departments").AddFirst(new XElement("Department", "Support"));
var result = xdoc.Element("Departments").Descendants();
foreach (XElement item in result) {
Console.WriteLine("Department Name - " + item.Value);
}
Console.WriteLine("\nPress any key to continue.");
Console.ReadKey();
}
}
}
Imports System.Collections.Generic
Imports System.Linq
Imports System.Xml.Linq
Module Module1
Sub Main(ByVal args As String())
Dim myXML As String = "" & vbCr & vbLf &
"Account " & vbCr & vbLf &
"Sales " & vbCr & vbLf &
"Pre-Sales " & vbCr & vbLf &
"Marketing " & vbCr & vbLf &
" "
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
Console.WriteLine(vbLf & "Press any key to continue.")
Console.ReadKey()
End Sub
End Module
编译并执行以上C#或VB的代码时,将产生以下结果-
Department Name - Support
Department Name - Account
Department Name - Sales
Department Name - Pre-Sales
Department Name - Marketing
Department Name - Finance
Press any key to continue.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
namespace LINQtoXML {
class ExampleOfXML {
static void Main(string[] args) {
string myXML = @"
Support
Account
Sales
Pre-Sales
Marketing
Finance
";
XDocument xdoc = new XDocument();
xdoc = XDocument.Parse(myXML);
//Remove Sales Department
xdoc.Descendants().Where(s =>s.Value == "Sales").Remove();
var result = xdoc.Element("Departments").Descendants();
foreach (XElement item in result) {
Console.WriteLine("Department Name - " + item.Value);
}
Console.WriteLine("\nPress any key to continue.");
Console.ReadKey();
}
}
}
Imports System.Collections.Generic
Imports System.Linq
Imports System.Xml.Linq
Module Module1
Sub Main(args As String())
Dim myXML As String = "" & vbCr & vbLf &
"Support " & vbCr & vbLf &
"Account " & vbCr & vbLf &
"Sales " & vbCr & vbLf &
"Pre-Sales " & vbCr & vbLf &
"Marketing " & vbCr & vbLf &
"Finance " & vbCr & vbLf &
" "
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
Console.WriteLine(vbLf & "Press any key to continue.")
Console.ReadKey()
End Sub
End Module
编译并执行以上C#或VB的代码时,将产生以下结果-
Department Name - Support
Department Name - Account
Department Name - Pre-Sales
Department Name - Marketing
Department Name - Finance
Press any key to continue.