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

回到顶部