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. C++面向对象编程,继承,数据抽象,动态绑定

    派生类(derived class)能够继承基类(base class )定义的成员: 1).派生类可以无需改变而使用那些与派生类具体特性不相关的操作 2).可以重新定义那些与派生类相关的成员函数,将 ...

  2. [CF1083B]The Fair Nut and Strings

    题目大意:在给定的长度为$n(n\leqslant5\times10^5)$的字符串$A$和字符串$B$中找到最多$k$个字符串,使得这$k$个字符串不同的前缀字符串的数量最多(只包含字符$a$和$b ...

  3. BZOJ3456:城市规划——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=3456 求出n个点的简单(无重边无自环)无向连通图数目 模数很熟悉,先敲一个NTT. 然后通过推导式 ...

  4. BZOJ2809:[Apio2012]dispatching——题解

    http://www.lydsy.com/JudgeOnline/problem.php?id=2809 题面复制于:https://www.luogu.org/problemnew/show/155 ...

  5. IDEA_MyBatis_SQLException:Parameter index out of range坑

    报错信息:超出数据库数据表设定的规定长度了 nested exception is org.apache.ibatis.type.TypeException: Could not set parame ...

  6. React属性用法总结

    1. 键值对 <ClaaNameA name = “Tom” /> <ClaaNameA name = {Tom} /> <ClaaNameA name = {“Tom” ...

  7. 自动清理N天前的二进制日志

    这里以自动清理5天前的二进制日志为例(做了同步或依赖于二进制日志备份的请慎用): 以root身份登录数据库,执行以下命令: ; 首次设置expire_logs_days参数后需要执行flush log ...

  8. 使用httpclient post请求中文乱码解决办法

    使用httpclient post请求中文乱码解决办法   在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码 ...

  9. Spring中@Resource与@Autowired、@Qualifier的用法与区别(转)

    1.@Autowired与@Resource都可以用来装配bean. 都可以写在字段上,或写在setter方法上. 2.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必 ...

  10. Block中的循环引用警告