C#使用Linq To XML读取XML,Linq生成XML,Linq创建带属性或带节点XML
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的更多相关文章
- Linq to XML 读取XML 备忘笔记
本文转载:http://www.cnblogs.com/infozero/archive/2010/07/13/1776383.html Linq to XML 读取XML 备忘笔记 最近一个项目中有 ...
- XML系列之--Linq操作带属性的XML(四)
关于XML,之前解析过电文收发方面的,就是所谓的带表头.前缀(命名空间)SOAP格式.这次需求是解析一个xml的模板(xls内容),然后填充数据,最后保存.需要时可转换xls.pdf等文件.关于这种带 ...
- C# xml 读xml、写xml、Xpath、Xml to Linq、xml添加节点 xml修改节点
#region XDocument //创建XDocument XDocument xdoc2 = new XDocument(); XElement xel1= new XElement(" ...
- C#基础笔记---浅谈XML读取以及简单的ORM实现
背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...
- C#基础---浅谈XML读取以及简单的ORM实现
背景: 在开发ASP.NETMVC4 项目中,虽然web.config配置满足了大部分需求,不过对于某些特定业务,我们有时候需要添加新的配置文件来记录配置信息,那么XML文件配置无疑是我们选择的一个方 ...
- XML读取的小例子
public void CalculateLeave(string userAcount, string xml) //传过来的是xml内容 { try { var xmlDoc = new Syst ...
- xml 读取递归算法
xml 读取递归算法:
- paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中总结
paip.获取proxool的配置 xml读取通过jdk xml 初始化c3c0在代码中 xml读取通过jdk xml 初始化c3c0在代码中.. ... 作者Attilax 艾龙, EMAI ...
- Qt XML读取写入操作
XML(eXtensible Markup Language,可扩展标记语言)是普通用于数据交换和数据存储的一种多用途文本文件格式: SVG(可标量矢量图形)XML格式,QtSvg模块提供了可用于载入 ...
随机推荐
- service(ServletRequest req, ServletResponse res) 通用servlet 可以接受任意类型的请求 用于扩展
service(ServletRequest req, ServletResponse res) 通用servlet 可以接受任意类型的请求 用于扩展
- (三)Redis列表List操作
List全部命令如下: lset key index value # 将列表key下标为index的元素的值设置为value,当 index 参数超出范围,或对一个空列表(key不存在)进行lset时 ...
- Codeforces Gym 101142 G Gangsters in Central City (lca+dfs序+树状数组+set)
题意: 树的根节点为水源,编号为 1 .给定编号为 2, 3, 4, …, n 的点的父节点.已知只有叶子节点都是房子. 有 q 个操作,每个操作可以是下列两者之一: + v ,表示编号为 v 的房子 ...
- 实验五 TCP传输及加解密
北京电子科技学院(BESTI) 实 验 报 告 课程:Java程序设计 班级:1353 姓名:陈巧然 ...
- POJ.3624 Charm Bracelet(DP 01背包)
POJ.3624 Charm Bracelet(DP 01背包) 题意分析 裸01背包 代码总览 #include <iostream> #include <cstdio> # ...
- 【状压DP】【P3959】【NOIP2017D2T2】宝藏
Description 参与考古挖掘的小明得到了一份藏宝图,藏宝图上标出了 $n$ 个深埋在地下的宝藏屋, 也给出了这 $n$ 个宝藏屋之间可供开发的$ m$ 条道路和它们的长度. 小明决心亲自前往挖 ...
- BUG:Open quote is expected for attribute "{1}" associated with an element type "id".
BUG原因:Mybatis的xml文件中id缺少双引号: 正确的应该是:
- Centos版本6的使用教程
Centos版本6的使用教程 1.打开VMware workstation 12 PRO 创建新的虚拟机. 2.使用典型类型配置. 3.选择稍后安装操作系统,可以在后面进行安装. 4.选择安装的系统 ...
- POJ1236:Network of Schools (思维+Tarjan缩点)
Network of Schools Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 24880 Accepted: 99 ...
- JQuery学习二(获取元素控件并控制)
$(’#id‘).+function; 例如: 1 <head> 2 <title>JQuery</title> 3 <script src="js ...