需要引用的命名空间:   using System.Xml.Linq;

常用的类:XDocument、XElement、XAttribute

创建 XDocument对象。

  • XDocument.Load():从文件、URI 或流中读取 XML 文档
  • XDocument.Parse():从一个字符串加载 XML 文档

一、使用Linq to xml创建xml文档

            XDocument xml = new XDocument(
new XElement("configuration",
new XElement("ImgButtonSettings",
new XElement("button",
new XElement("name", new XAttribute("id", "EFS"), "close"),
new XElement("size-w",61),
new XElement("size-h", new XAttribute("ff", 564), 56),
new XElement("localtion-x",970),
new XElement("localtion-y",3),
new XElement("openurl",""),
new XElement("visable",true)
),
new XElement("button",
new XElement("name", new XAttribute("id", "EFS"), "back"),
new XElement("size-w", 61),
new XElement("size-h", new XAttribute("ff", 564), 56),
new XElement("localtion-x", 990),
new XElement("localtion-y", 3),
new XElement("openurl", ""),
new XElement("visable", true)
)
)
)
);
xml.Save(@"E:\123.xml");

  

二、使用Linq to xml 查询xml

注意子元素和子代(即后代)元素的区别,子元素就是儿子 ,子代元素就是所有后代

Element()和Elements()方法获取的都是子元素,非子元素的后代元素是获取不到的

Descendants()获取的是后代元素

XDocument对象的子元素有且只有一个就是xml的根节点

  // 获取button节点下的所有localtion-x节点
var node = from x in xml.Descendants("button").Elements()
where x.Name == "localtion-x"
select x;
foreach (var item in node)
{
Console.WriteLine(item.Name);//获取节点的名字
Console.WriteLine(item.Value);//获取节点的值
} //获取button下id属性为name的所有name节点
var node2 = from x in xml.Descendants("button").Elements("name")
where x.Attribute("id").Value == "ABC"
select x;
foreach (var item in node2)
{
Console.WriteLine(item.Value);
}

传统的XML读取方式:http://www.cnblogs.com/lxf1117/p/4178678.html

.Net处理Xml相关随笔

最新文章

  1. Python 之 for循环中的lambda
  2. ElasticSearch的各种服务的URL
  3. mahout分类学习和遇到的问题总结
  4. .Net魔法堂:史上最全的ActiveX开发教程——发布篇
  5. 编译哈工大语言技术平台云LTP(C++)源码及LTP4J(Java)源码
  6. 安装cloudera
  7. Linux之cuda安装
  8. Problem 1007 幸运数 线段树成段更新
  9. 转:java两个jre目录和三个lib目录
  10. Phonegap3.4 教程
  11. Bye 14 Hello 15
  12. MVC中使用jquery的浏览器缓存问题
  13. Python模拟登录实战(三)
  14. js封装的类似java StringBuilder类
  15. Vue.js 学习笔记 一
  16. Linux-安装FFmpeg
  17. mysql原生语句基础知识
  18. Linux输入法问题
  19. 1405ST软件测试课的要求补充说明
  20. JS正则表达式验证是否为11位有效手机号码

热门文章

  1. TCP长连接与短连接的区别
  2. Mac与Linux的一个巨大不同
  3. DSP6455 DSP/BIOS中断配置问题(是否需要ECM-事件组合以及实例)
  4. tlplayer 所有平台版本支持水印叠加
  5. C/C++中static关键词的作用
  6. Hashtable与HashMap区别(2)
  7. POJ2528 线段树的区间操作
  8. bzoj2243:[SDOI2011]染色
  9. Google 多源码管理工具 gclient
  10. HTTP编程(六)