c#对xml的操作

操作xml可以通过XElement对象,比较方便的使用列举以下几点:

把字符串转变成XElement,保存成xml文件,加载xml文件:

            //把字符串解析成XElement对象
            string str = "<students><student><name>one</name></student><student><name>two</name></student><student><name>three</name></student></students>";
            var xml = XElement.Parse(str);
            //保存文件
            xml.Save("1.xml");
            Console.WriteLine("保存成功");

            //读取文件
            xml = XElement.Load("1.xml");
            Console.WriteLine(xml);

集合创建XElement对象

class Program
    {
        static void Main(string[] args)
        {
            List<Person> list = new List<Person>()
            {
                new Person(){Id=1,Name="张三"},
                new Person(){Id=2,Name="李四"},
                new Person(){Id=3,Name="王五"},
                new Person(){Id=4,Name="赵六"},
                new Person(){Id=5,Name="钱七"}
            };
            var xml = new XElement("Persons", list.Select(x => new XElement("name",x.Name)));
            Console.WriteLine(xml);
        }
    }
    public class Person
    {
        public int Id { get; set; }
        public string Name { get; set; }

    }

2 、使用lamda查询xml值

xml文件如下:

<?xml version="1.0" encoding="utf-8" ?>
<AOnlineOrg>
  <eSales>
    <Member SortNo="1">
      <Login>GUOXIN</Login>
      <PositionID>1-25ISRB</PositionID>
      <UserID>1-25ISRQ</UserID>
      <BU>ICSF</BU>
    </Member>
    <Member SortNo="2">
      <Login>LIUXIANG</Login>
      <PositionID>1-196945</PositionID>
      <UserID>1-19694A</UserID>
      <BU>ICSF</BU>
    </Member>
    <Member SortNo="3">
      <Login>QINYANG</Login>
      <PositionID>1-10DAMN</PositionID>
      <UserID>1-KJ3IA</UserID>
      <BU>ICSF</BU>
    </Member>
    <Member SortNo="4">
      <Login>XIAOCANFU</Login>
      <PositionID>1-FKZUJF</PositionID>
      <UserID>1-FKZUB5</UserID>
      <BU>ICSF</BU>
    </Member>
    <Member SortNo="5">
      <Login>XIAOHUAHU</Login>
      <PositionID>1-JWZ3R</PositionID>
      <UserID>1-JWZ4F</UserID>
      <BU>ICSF</BU>
    </Member>
    <Member SortNo="6">
      <Login>MANWEIZHAO</Login>
      <PositionID>1-JDSX2</PositionID>
      <UserID>1-1U5P9V</UserID>
      <BU>IAG</BU>
    </Member>
    <Member SortNo="7">
      <Login>LIJUANNIU</Login>
      <PositionID>1-IABTN</PositionID>
      <UserID>1-1PW39I</UserID>
      <BU>IAG</BU>
    </Member>
    <Member SortNo="8">
      <Login>QUANFANGZHOU</Login>
      <PositionID>1-H1MFS</PositionID>
      <UserID>1-ISATTR</UserID>
      <BU>IAG</BU>
    </Member>
    <Member SortNo="9">
      <Login>FENGYUANLI</Login>
      <PositionID>1-DHZB5</PositionID>
      <UserID>1-DI7M2</UserID>
      <BU>IAG</BU>
    </Member>
  </eSales>
</AOnlineOrg>

上面xml文件保存为1.xml,查找其Member的属性SortNo的值小于3的Login值:

 //加载
            var xml = XElement.Load("1.xml");
            //选择集合
            var list = xml.Descendants("Member");
            //查找xml中Member的属性SortNo的值小于3的Login值
            var arr = list.Where(x => ((int)x.Attribute("SortNo")) < 3).Select(x => x.Element("Login"));
            foreach (var item in arr)
            {
                Console.WriteLine(item);
            }
查找所有Login值
            var xml = XElement.Load("1.xml");

            //查找所有Login值
            foreach (var item in xml.Descendants("Login"))
            {
                Console.WriteLine(item.Value);
            }

把xml转成类对象集合

 public class Person
    {
        public int SortNo { get; set; }
        public string Login { get; set; }
        public string PositionID { get; set; }
        public string UserID { get; set; }
        public string BU { get; set; }
    }
            var xml = XElement.Load("1.xml");

            List<Person> list = new List<Person>();

            foreach (var item in xml.Descendants("Member"))
            {
                if (item.HasElements)
                {
                    list.Add(new Person
                    {
                        Login = item.Element("Login").Value,
                        PositionID = item.Element("PositionID").Value,
                        UserID = item.Element("UserID").Value,
                        BU = item.Element("BU").Value,
                        SortNo = (int)item.Attribute("SortNo")
                    });
                }
            }
            foreach (var item in list)
            {
                Console.WriteLine(item.Login);
            }
时间: 2024-12-28 00:55:59

c#对xml的操作的相关文章

xml文件操作

一.xml文件操作1.了解xml文件的SAX解析方式 1.1SAX解析XML  //第一步:解析xml的对象  //工厂模式   SAXParser parser = SAXParserFactory       .newInstance()       .newSAXParser();  //第二步:获得xml文件   InputStream is = getResources().openRawResource(R.raw.shu);  //第三步: 处理器   DefaultHandler

XML常用操作

C#操作XML非常简单 一是写入: 生明一个xelment 再在它的父节点Add就可以,也可以用生明的节点.SetAttribute("节点名称","节点对应的值"); 二是读取: 一样也是先生明再得到其子节点再                    if (xe.Name == "Contrast")                                            if (xe.GetAttribute("IsS

Linq To XML 简单操作

加载xml文件和保存xml文件 XDocument doc = XDocument.Load(Server.MapPath("\\xmlfile\\Book.xml")); doc.Save(Server.MapPath("\\xmlfile\\BookBackup.xml")); 创建元素 XElement xe = new XElement("book",new XElement("bookname","asp.

python解析xml文件操作的例子

python解析xml文件操作实例,操作XML文件的常见技巧. xml文件内容: <?xml version="1.0" ?> <!--Simple xml document__chapter 8--> <book> <title> sample xml thing </title> <author> <name> <first> ma </first> <last>

xml的操作-解析篇

2014-05-04 11:16 吴文付 工作上,学习上,肯定会碰到xml的操作.这里提供详细的xml解析方法. 这里的规划如下:简单的布局3个按钮.3个按钮,对应3种解析xml的方法.分别为 sax解析 dom解析 pull解析 12:56 完成了dom的解析.比较简单. xml的操作-解析篇,布布扣,bubuko.com

01操作XML—C#操作XML文件基础知识

学习笔记,如有错误请指正.?号处也请各位指点下,谢谢. 有一个XML,文件名为“UserInfo.xml”,操作如下: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <users> <user1 姓名="张三" 密码="123">我是张三</user1> <user2 姓名="李四

android xml文件操作

//xml 写操作        XmlSerializer serializer = Xml.newSerializer();                FileOutputStream outputStream = context.openFileOutput("xmlwriter.xml", Context.MODE_PRIVATE);                StringWriter writer=new StringWriter();        serializ

SQL SERVER中对XML进行操作

一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XML 模型特征(例如文档顺序和递归结构),XML 值以内部格式存储为大型二进制对象 (BLOB). 用户将一个XML数据存入数据库的时候,可以使用这个XML的字符串,SQL Server会自动的将这个字符串转化为XML类型,并存储到数据库中. 随着SQL Server 对XML字段的支持,相应的,T-

Xml通用操作类

using System; using System.Collections.Generic; using System.IO; using System.Text; using System.Xml; namespace CommonUtil { /// <summary> /// Xml通用操作类 /// </summary> public class XmlHelper { public XmlHelper() { } /// <summary> /// 创建XM

对XML的操作

对XML的操作主要使用到的语法示例: using System.Xml; private static string XmlMarketingStaff = AppDomain.CurrentDomain.BaseDirectory + "config\\MarketingStaff.xml"; public static List<staffes> GetMarketingStaff2() { XmlDocument xmlListDoc = XmlHlp.LoadXml