using System;
using System.Linq;
using System.Xml.Linq; namespace Sample2
{
class Program
{
static void Main(string[] args)
{
#region 写文件一(生成节点性质的)
XDocument xdoc = new XDocument();
XElement Persons = new XElement("Persons");
XElement Peorson1 = new XElement("Person"); //增加一个Person节点
Peorson1.Add(new XElement("Name", "Tom"));//在ptom下再增加子节点
Peorson1.Add(new XElement("Age", ""));
Persons.Add(Peorson1);
XElement Person2 = new XElement("Person");
Person2.Add(new XElement("Name", "Jack"));
Person2.Add(new XElement("Age", ""));
Persons.Add(Person2); xdoc.Add(Persons);//把根元素添加到文档中
xdoc.Save("myXml1.xml");//保存 Console.WriteLine("xml文件一生成成功!");
Console.ReadLine(); /* 生成myXml.xml内容如下
*
<?xml version="1.0" encoding="utf-8"?>
<Persons>
<Person>
<Name>Tom</Name>
<Age>18</Age>
</Person>
<Person>
<Name>Jack</Name>
<Age>20</Age>
</Person>
</Persons>
*/
#endregion #region 读XML 读取节点格式的值
XDocument xd = XDocument.Load("myXml1.xml");
foreach (XElement item in xd.Root.Descendants("Person"))//得到每一个Person节点,得到这个节点再取他的Name的这个节点的值
{
Console.WriteLine("姓名:{0} 年龄:{1}", item.Element("Name").Value, item.Element("Age").Value);//Person的节点的下得节点为Name的
}
Console.ReadLine();
#endregion #region 带节点格式的XML查找数据
var result = xd.Descendants("Person")
.Where(p => p.Element("Name").Value.ToLower().Equals("tom"))
.Select(p => new { name = p.Element("Name").Value, age = p.Element("Age").Value }).FirstOrDefault(); //若要筛选就用上这个语句
Console.WriteLine("姓名:{0} 年龄:{1}", result.name, result.age);
Console.ReadLine();
#endregion #region 写文件二(生成属性性质的)
XDocument xdoc1 = new XDocument();
XElement Pers = new XElement("Persons");
XElement p1 = new XElement("Person");
p1.Add(new XAttribute("Name", "tom"));//添加XAttribute就生成属性
p1.Add(new XAttribute("Age", ""));
Pers.Add(p1); XElement p2 = new XElement("Person");
p2.Add(new XAttribute("Name", "jack"));
p2.Add(new XAttribute("Age", ""));
Pers.Add(p2); xdoc1.Add(Pers);//把根元素添加到文档中
xdoc1.Save("myXml2.xml");//保存 Console.WriteLine("xml文件二生成成功!");
Console.ReadLine(); /* 生成myXml.xml内容如下
*
<?xml version="1.0" encoding="utf-8"?>
<Persons>
<Person Name="tom" Age="18" />
<Person Name="jack" Age="20" />
</Persons>
*/
#endregion #region 读XML 读取属性格式的值
XDocument xd1 = XDocument.Load("myXml2.xml");
foreach (XElement item in xd1.Root.Descendants("Person"))//得到每一个Person节点,得到这个节点再取他的Name的这个节点的值
{
Console.WriteLine("姓名:{0} 年龄:{1}", item.Attribute("Name").Value, item.Attribute("Age").Value);//Person的节点的下得节点为Name的
}
Console.ReadLine();
#endregion #region 带属性格式的XML查找数据
var result1 = xd1.Descendants("Person")
.Where(p => p.Attribute("Name").Value.Equals("tom"))
.Select(p => new { name = p.Attribute("Name").Value, age = p.Attribute("Age").Value }).FirstOrDefault(); //若要筛选就用上这个语句
Console.WriteLine("姓名:{0} 年龄:{1}", result1.name, result1.age);
Console.ReadLine();
#endregion
}
}
}

C#使用Linq To XML读取XML,Linq生成XML,Linq创建带属性或带节点XML的更多相关文章

  1. Linq to XML 读取XML 备忘笔记

    本文转载:http://www.cnblogs.com/infozero/archive/2010/07/13/1776383.html Linq to XML 读取XML 备忘笔记 最近一个项目中有 ...

  2. XML系列之--Linq操作带属性的XML(四)

    关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...

  3. C# xml 读xml、写xml、Xpath、Xml to Linq、xml添加节点 xml修改节点

    #region XDocument //创建XDocument XDocument xdoc2 = new XDocument(); XElement xel1= new XElement(" ...

  4. C#基础笔记---浅谈XML读取以及简单的ORM实现

    背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...

  5. C#基础---浅谈XML读取以及简单的ORM实现

    背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...

  6. XML读取的小例子

    public void CalculateLeave(string userAcount, string xml) //传过来的是xml内容 { try { var xmlDoc = new Syst ...

  7. xml 读取递归算法

    xml 读取递归算法:

  8. paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中总结

    paip.获取proxool的配置  xml读取通过jdk xml 初始化c3c0在代码中  xml读取通过jdk xml 初始化c3c0在代码中.. ... 作者Attilax  艾龙,  EMAI ...

  9. Qt XML读取写入操作

    XML(eXtensible Markup Language,可扩展标记语言)是普通用于数据交换和数据存储的一种多用途文本文件格式: SVG(可标量矢量图形)XML格式,QtSvg模块提供了可用于载入 ...

随机推荐

  1. init只创建一次 只有父类的init创建servletContext的对象

    init只创建一次 只有父类的init创建servletContext的对象  如果重写父类的方法 但不显示调用父类的init 是不会创建servletContext对象的

  2. Linq的模糊查询(包含精确模糊查询)

    目录: 1.判断是否为空或者null 2.普通包含模糊查询 1)以某字符串开头的模糊查询 2)以某字符串结尾的模糊查询 3)包含某字符串的模糊查询 3.精确到字符串对应位数字符的模糊查询(*重点) l ...

  3. P4035 [JSOI2008]球形空间产生器

    题目描述 有一个球形空间产生器能够在 nn 维空间中产生一个坚硬的球体.现在,你被困在了这个 nn 维球体中,你只知道球面上 n+1n+1 个点的坐标,你需要以最快的速度确定这个 nn 维球体的球心坐 ...

  4. Python十六进制转码问题

    使用Python的decode函数转码十六进制的字符串时,会出现UnicodeDecodeError: 'utf8' codec can't decode byte 0xba in position ...

  5. VS2017常用快快捷键

    VS2017常用快快捷键 VS中代码对齐等快捷键        在VS中,选定代码后,按Ctrl+K+F组合键,可以自动进行代码对齐.        注意:要先按下Ctrl和K,再按下F,因为Ctrl ...

  6. 20165218 2017-2018-1 《Java程序设计》第一周学习总结

    20165218 2017-2018-1 <Java程序设计>第一周学习总结 教材学习内容总结 第一章.Java入门 1. Java特点 Java具有简单.面向对象.平台无关.多线程.动态 ...

  7. async的基本用法

    1. async函数的基本形式 //函数声明 async function foo() {} //函数表达式 const foo = async function () {}; //对象的方法 let ...

  8. XML 树结构,语法规则,元素,属性,验证及其解析

    XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶". 一个 XML 文档实例 XML 文档使用简单的具有自我描述性的语法: <?xml v ...

  9. Codeforces Round #343 (Div. 2) B

    B. Far Relative’s Problem time limit per test 2 seconds memory limit per test 256 megabytes input st ...

  10. SPOJ - HIGH :Highways (生成树计数)

    Highways 题目链接:https://vjudge.net/problem/SPOJ-HIGH Description: In some countries building highways ...