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. 【bzoj4491】我也不知道题目名字是什么 离线扫描线+线段树

    题目描述 给定一个序列A[i],每次询问l,r,求[l,r]内最长子串,使得该子串为不上升子串或不下降子串 输入 第一行n,表示A数组有多少元素接下来一行为n个整数A[i]接下来一个整数Q,表示询问数 ...

  2. [BZOJ2055] 80人环游世世界

    Description ​ 想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么 ​ 一个80人的团伙,也想来一次环游世界. ​ 他们 ...

  3. PyTorch为何如此高效好用?

    C/C++中 Python 扩展对象的简介 你可能知道可以借助 C/C++扩展 Python,并开发所谓的「扩展」.PyTorch 的所有繁重工作由 C/C++实现,而不是纯 Python.为了定义 ...

  4. BZOJ1507 [NOI2003]Editor 【splay】

    1507: [NOI2003]Editor Time Limit: 5 Sec  Memory Limit: 162 MB Submit: 4129  Solved: 1660 [Submit][St ...

  5. HDU.1596 find the safest road (Floyd)

    HDU.1596 find the safest road (Floyd) 题意分析 与普通的最短路不太相同,本题有些许的变化. 1. 要找到由i到j最安全的路,故在求解的时候要保证mp[i][j]尽 ...

  6. Cydia Substrate based DexDumper's weakness

    得益于Cydia Substrate框架,HOOK Native函数变得简单,也给脱壳带来方便. 像ijiami免费版,360,classes.dex被加密到so文件并运行时释放到内存,因此针对相关函 ...

  7. 【图论】tarjan的离线LCA算法

    百度百科 Definition&Solution 对于求树上\(u\)和\(v\)两点的LCA,使用在线倍增可以做到\(O(nlogn)\)的复杂度.在NOIP这种毒瘤卡常比赛中,为了代码的效 ...

  8. 关于AVPlayerItem对象的属性duration返回播放总时长的坑

    最近在使用AVPlayer播放网络流媒体,发现一个坑: 就是playerItem.duration有可能不返回该网络多媒体资源的播放总时间长度,而是返回了一个奇怪的数据:nan, 因为我通过CMTim ...

  9. opencv学习笔记二

    1,读取照片(imread()) 2,处理照片(cvtcolor()) 3,命名窗口(namewindow()) 4,显示照片(imshow()) 5,保存照片(imwrite()) #include ...

  10. HDU4027 线段树

    Can you answer these queries? Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65768/65768 K ...