操作xml的类比较多,发现XElement类操作xml极其方便,下面列举一些操作方法

1、创建xml

            XElement xml = new XElement("root",
new XElement("Parent",
new XElement("Me",
new XElement("son"),
new XElement("daughter")
)));

2、用Lambda表达式

            List<string> list = new List<string>(){
"Parent","Me","son"
}; XElement xml=new XElement("root",
list.Select(x=>new XElement(x))
); Console.WriteLine(xml);
            Dictionary<string, string> dic = new Dictionary<string, string>();
dic.Add("Name", "zhangsan");
dic.Add("Sex", "男");
dic.Add("Age", "");
XElement xml=new XElement("root",
dic.Select(x=>new XElement(x.Key,x.Value))
); Console.WriteLine(xml);

3、用字符串创建 ,这种我认为最为简单

            string str = "<Parent><Me>张三</Me></Parent>";
XElement xml = XElement.Parse(str); Console.WriteLine(xml);

4、属性

            XElement xml = new XElement("students",
new XElement("student",
new XAttribute("id", ""),
new XElement("name", "张三"),
new XElement("age", )));
            string str = "<students><student id=\"1\"><name>张三</name><age>12</age></student></students>";
XElement xml = XElement.Parse(str); Console.WriteLine(xml);

5、保存 xml

            string str = "<students><student id=\"1\"><name>张三</name><age>12</age></student></students>";
XElement xml = XElement.Parse(str); xml.Save("test.xml");

6、加载

            XElement xml = XElement.Load("test.xml");
Console.WriteLine(xml);

7、读取 xml

。。。。。{

 XElement xml = XElement.Load("test.xml");

            ForXml(xml);
} public static void ForXml(XElement x)
{
printXml(x);
foreach (var item in x.Elements())
{
ForXml(item);
}
}
public static void printXml(XElement x)
{
if (x == null)
return;
if (x.HasElements)
{
Console.WriteLine(x.Name);
}
else
{
Console.WriteLine(x.Name+":"+x.Value);
}
foreach (XAttribute attr in x.Attributes())
{
Console.WriteLine("\t"+attr.Name+":"+attr.Value);
}
}

8、查找某一值

            XElement xml = XElement.Load("test.xml");

            var item = xml.Descendants().Where(x =>
{
var attr = (int?)x.Attribute("id");
if (attr != null)
{
if (attr.Value == )
return true;
}
return false;
//if (x.Value == "张三")
//{
// return true;
//}
//else
//{
// return false;
//}
});
foreach (XElement x in item)
{
ForXml(x);
}

对xml的操作使用的类XElement的使用的更多相关文章

  1. C#XmlHelper操作Xml文档的帮助类

    using System.Xml; using System.Data; namespace DotNet.Utilities { /// <summary> /// Xml的操作公共类 ...

  2. [XML] C# XmlHelper操作Xml文档的帮助类 (转载)

    点击下载 XmlHelper.rar 主要功能如下所示 /// <summary> /// 类说明:XmlHelper /// 编 码 人:苏飞 /// 联系方式:361983679 // ...

  3. Xml通用操作类

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

  4. XML序列化 判断是否是手机 字符操作普通帮助类 验证数据帮助类 IO帮助类 c# Lambda操作类封装 C# -- 使用反射(Reflect)获取dll文件中的类型并调用方法 C# -- 文件的压缩与解压(GZipStream)

    XML序列化   #region 序列化 /// <summary> /// XML序列化 /// </summary> /// <param name="ob ...

  5. C# XML文件操作

    C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...

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

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

  7. sql server中对xml进行操作

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

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

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

  9. 对配置文件 xml 进行操作

    个人喜欢用 Linq 的方式来进行操作,方便快捷 <?xml version="1.0" encoding="utf-8" ?> <confi ...

随机推荐

  1. 20155330 2016-2017-2 《Java程序设计》第三周学习总结

    20155330 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 学习目标 区分基本类型与类类型 理解对象的生成与引用的关系 掌握String类和数组 理解封 ...

  2. python 生成随机长度的字符串

    import os def randomString(n): return (''.join(map(lambda xx:(hex(ord(xx))[2:]),os.urandom(n))))[0:1 ...

  3. apt-get doesn't work

    apt-get upgrade Reading package lists... DoneBuilding dependency tree       Reading state informatio ...

  4. PHP学习笔记之interface关键字

    interface用于定义接口 接口里边的方法不需要有方法的实现 implements用于表示类实现某个接口 实现了某个接口之后,必须提供接口中定义的方法的具体实现. 可以用instanceof关键字 ...

  5. sougoupinyin for linux 安装步骤(精简版)

    download deb double-click to install select fcitx reboot click it in the bar and choose the"tex ...

  6. WPF 动画:同为控件不同命 - 简书

    原文:WPF 动画:同为控件不同命 - 简书 1. 及格与优秀 读大学的时候,有一门课的作业是用 PPT 展示. 但是我们很多同学都把 PPT 当做 Word 来用,就单纯地往里面堆文字. 大家都单纯 ...

  7. mfc通过MapWinGIS控件读取shp文件(不通过#import实现)

    1.首先注册MapWinGIS ActiveX组件, 引入MapWinGIS.ocx产生的MapWinGIS_i.h和MapWinGIS_i.c文件,利用CoCreateInstance函数来调用 演 ...

  8. CF833E Caramel Clouds

    题面 天上有$n$朵云,每朵云$i$会在时间$[l_i,r_i]$出现,你有$\text C$个糖果,你可以花费$c_i$个糖果让云$i$消失,同时需要保证你最多让两朵云消失.现在有$m$个独立的询问 ...

  9. Walle代码发布

    一.概述 Walle 一个web部署系统工具,配置简单.功能完善.界面流畅.开箱即用!支持git.svn版本管理,支持各种web代码发布,PHP,Python,JAVA等代码的发布.回滚,可以通过we ...

  10. python 布尔值 bool( ) 与逻辑运算符

    逻辑运算符 not and or 运算符优先级 not > and >or printer(x or y)  x为非零,则返回x,否则返回y print(1 or 2) print(3 o ...