C#使用LINQ to XML读取XML
示例
<?xml version="1.0" encoding="utf-8" ?><Employees>
<Employee>
<EmpId>1</EmpId>
<Name>Sam</Name>
<Sex>Male</Sex>
<Phone Type="Home">423-555-0124</Phone>
<Phone Type="Work">424-555-0545</Phone>
<Address>
<Street>7A Cox Street</Street>
<City>Acampo</City>
<State>CA</State>
<Zip>95220</Zip>
<Country>USA</Country>
</Address>
</Employee>
<Employee>
<EmpId>2</EmpId>
<Name>Lucy</Name>
<Sex>Female</Sex>
<Phone Type="Home">143-555-0763</Phone>
<Phone Type="Work">434-555-0567</Phone>
<Address>
<Street>Jess Bay</Street>
<City>Alta</City>
<State>CA</State>
<Zip>95701</Zip>
<Country>USA</Country>
</Address>
</Employee>
</Employees>
使用LINQ读取XML文件
XDocument xdocument = XDocument.Load("Employees.xml");IEnumerable<XElement> employees = xdocument.Root.Elements();
foreach (var employee in employees)
{
Console.WriteLine(employee);
}
访问单个元素
XElement xelement = XElement.Load("Employees.xml");IEnumerable<XElement> employees = xelement.Root.Elements();
Console.WriteLine("所有员工姓名列表:");
foreach (var employee in employees)
{
Console.WriteLine(employee.Element("Name").Value);
}
访问多个元素
XElement xelement = XElement.Load("Employees.xml");IEnumerable<XElement> employees = xelement.Root.Elements();
Console.WriteLine("所有员工姓名及其ID的列表:");
foreach (var employee in employees)
{
Console.WriteLine("{0} has Employee ID {1}",
employee.Element("Name").Value,
employee.Element("EmpId").Value);
}
访问具有特定属性的所有元素
XElement xelement = XElement.Load("Employees.xml");var name = from nm in xelement.Root.Elements("Employee")
where (string)nm.Element("Sex") == "Female"
select nm;
Console.WriteLine("女员工的详细信息:");
foreach (XElement xEle in name)
Console.WriteLine(xEle);
访问具有特定属性的特定元素
XElement xelement = XElement.Load("..\\..\\Employees.xml");var homePhone = from phoneno in xelement.Root.Elements("Employee")
where (string)phoneno.Element("Phone").Attribute("Type") == "Home"
select phoneno;
Console.WriteLine("列出家庭号码");
foreach (XElement xEle in homePhone)
{
Console.WriteLine(xEle.Element("Phone").Value);
}
以上是 C#使用LINQ to XML读取XML 的全部内容, 来源链接: utcz.com/z/334566.html