Every day is wonderful

分享与创新 并大胆的去尝试新鲜事物。。。。

c#中使用linq to xml访问xml文件

  首先第一步是选中要访问xml文件的属性copy to out(如test.xml),选择always,这步的意思是这个xml文件始终会被输出到可执行文件所在的文件夹,这样我们才可以直接使用不带路径的文件名来访问它。下面来看这个xml文件的内容:





  one
  two
  three



  
  
  


  test1_value


  只是表明xml的根节点,定义第一种格式,可以无限嵌套节点,的一个多值嵌套子节点,节点中已经赋了三个“值”:one two three ,在后面的代码中,将说明怎么读取这几个值。 定义第二种格式,节点中没有“值”,但是却增加了“属性”name 和 value ,属性的名字可以自定义。我们在后面也会说明如何读取这些属性里面的值。这两种方式可以配合使用,就是xml中的第三种模式,不做另外的说明,在下面的访问代码中也没有做访问实例,可以参考前两种自己组合,下面来看代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;
using System.Xml.Linq;

namespace LinqXml
{
  class Program
  {
    static void Main(string[] args)
    {
      //第一种xml格式的读法
      var firstCollection = from test in XElement.Load(“test.xml”).Element(“FirstStyle”).Elements(“Test”)
                select test.Value;
      foreach (string s in firstCollection)
      {
        Console.WriteLine(s);
      }

      //第二种xml格式的读法
      var secondCollection = from test in XElement.Load(“test.xml”).Element(“SecondStyle”).Elements(“Test_”)
                 where test.Attribute(“name”).Value.Equals(“lastname”)
                 select test.Attribute(“value”).Value;
      foreach (string s in secondCollection)
      {
        Console.WriteLine(s);
      }
    }
  }
}
  在进行xml节点选择的时候,自外而内,跟节点不用选,使用节点名称选择。如果该节点是单节点(如几种Style的节点),则应该用Element(“”)来选择,如果是多节点(如),则必须使用Elements(“”)来选择,如果选用Element(“”),则只会返回该类节点的第一个。linq 语法稍微解释一下,from制定选择的范围,where指定选择的条件,selete 指定选择的目标。如果不明白可以把代码实践一下调试看看

点赞

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注