操作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=,Name="张三"},
new Person(){Id=,Name="李四"},
new Person(){Id=,Name="王五"},
new Person(){Id=,Name="赵六"},
new Person(){Id=,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")) < ).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);
}

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

  1. VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式

    [1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...

  2. sql server中对xml进行操作

    一.前言 SQL Server 2005 引入了一种称为 XML 的本机数据类型.用户可以创建这样的表,它在关系列之外还有一个或多个 XML 类型的列:此外,还允许带有变量和参数.为了更好地支持 XM ...

  3. 对XML的操作

    对XML的操作主要使用到的语法示例: using System.Xml; private static string XmlMarketingStaff = AppDomain.CurrentDoma ...

  4. Xml通用操作类

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

  5. C# XML流操作简单实例

    这里我们先介绍操作XML文件的两个对象:XmlTextReader和XmlTextWriter打开和读取Xml文件使用到的对象就是XmlTextReader对象.下面的例子打开了与程序在同一路径下的一 ...

  6. SQL Server 2008 对XML 数据类型操作

    原文 http://www.cnblogs.com/qinjian123/p/3240702.html 一.前言 从 SQL Server 2005 开始,就增加了 xml 字段类型,也就是说可以直接 ...

  7. 我来讲讲在c#中怎么进行xml文件操作吧,主要是讲解增删改查!

    我把我写的四种方法代码贴上来吧,照着写没啥问题. 注: <bookstore> <book> <Id>1</Id> <tate>2010-1 ...

  8. 由“Jasperrpeorts 4.1.2升级到5.1.2对flex项目的解析”到AS3 带命名空间的XML的操作

    原文同步至:http://www.waylau.com/from-jasperrpeorts-4-1-2-upgraded-to-5-1-2-parsing-of-flex-projects-to-t ...

  9. xml常用操作(js、sql、vb)

    我们经常会用到xml操作,如下介绍了js.sql.vb等对xml的操作. JS创建xml对象 //创建对象 function getDataXML() {     var objTds = $(&qu ...

  10. Python实现XML的操作

    本文从以下两个方面, 用Python实现XML的操作: 一. minidom写入XML示例1 二. minidom写入XML示例2 三. ElementTree写入/修改示例 四. ElementTr ...

随机推荐

  1. Go语言的数据类型

    1 概述 Go语言作为类C语言,支持常规的基础数据类型的的同时,支持常用的高级数据类型.他们是: 整数,int,uint,int8,uint8,int16,uint16,int32,uint32,in ...

  2. 利用.NET Code Contracts实现运行时验证

    .NET的Contract类库是Declarative Programming实践的一部分,可以对日常编程带来很多好处: 提高代码可读性,使用者一看Require, Ensure就知道这方法接受什么输 ...

  3. 一个java新手配置IIS服务器的血泪史

    接到一个二次开发项目,听说是asp页面,带着不要怂的态度于是接下了. 好嘛按照步骤来 1.了解需求:一个公司内部积分排名类型项目,已经被多次开发,我所需要的就是新增两个页面,一个是分店赛一个是分部赛. ...

  4. 优步UBER司机全国各地奖励政策汇总 (3月21日-3月27日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  5. 北京Uber优步司机奖励政策(3月1日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. 佛山Uber优步司机奖励政策(7月27日-8月2日)

    周上线时间少于等于7个小时,以下奖励条件无效,仅返还车资.   滴滴快车单单2.5倍,注册地址:http://www.udache.com/如何注册Uber司机(全国版最新最详细注册流程)/月入2万/ ...

  7. php输出带尖括号的内容

    有这样的数组 $arr = array( 'facebook' => 'facebook', '<facebook>' => '<facebook>', ); 输出 ...

  8. JS学习 函数的理解

    ECMAScript 的函数实际上是功能完整的对象. 函数的理解 用 Function 类直接创建函数,格式如下.可理解为Function构造器. var function_name = new Fu ...

  9. Unity2017 经典游戏开发教程 算法分析与实现 (张帆 著)

    https://meta.box.lenovo.com/link/view/82c451b41ce34e81a4b34cb46747d3d5 第1章 熟悉Unity软件的操作 第2章 打地鼠 (已看) ...

  10. 【廖雪峰老师python教程】——IO编程

    同步IO 异步IO 最常见的IO——读写文件 读写文件前,我们先必须了解一下,在磁盘上读写文件的功能都是由操作系统提供的,现代操作系统不允许普通的程序直接操作磁盘,所以,读写文件就是请求操作系统打开一 ...