linq查询xml
1.加载xml字符串
XElement root = XElement.Parse(@"<?xml version='1.0' encoding='utf-8'?> <Items> <Item> <Id>1</Id> <Name>Name1</Name> <Description>Test1</Description> <Children> <Item> <Id>1.1</Id> <Name>Name1.1</Name> <Description>Test1.1</Description> </Item> </Children> </Item> <Item> <Id>2</Id> <Name>Name2</Name> <Description>Test2</Description> </Item> </Items> "); var elements = root.Elements("Item");//root下的第一层Item(Id为1和2)
![]()
XElement firstItem = root.Element("Item").Element("Name"); //第一个Item下的Name(Id为1)
![]()
var descendants = root.Element("Item").Descendants("Name");//第一个Item下的所有Name(包括Children下的,Id为1和1.1)
![]()
var xElements=root.Descendants("Name");//root下的所有子代的Name(Id为1,1.1,2)
![]()
2.直接加载文件:
var users = XElement.Load("TemplateUser.config").Elements("user");
var user = users.FirstOrDefault();
var Account = user.Element("Account").Value.ToString();
3.XmlDocument转换为XDocument
XmlDocument doc = new XmlDocument();
doc.LoadXml(xmlStr); //xml字符串转成xml文档对象
XDocument xdoc =doc.ToXDocument(); //xmldocument转成xdoccument 扩展方法
var eventId = xdoc.Document.Root.Element("EventID"); //根节点下的eventid节点
if (eventId != null)
{
MessageBox.Show(eventId.Value); //15
}
扩展方法
public static class XmlDocumentExtensions
{
public static XDocument ToXDocument(this XmlDocument document)
{
return document.ToXDocument(LoadOptions.None);
}
public static XDocument ToXDocument(this XmlDocument document, LoadOptions options)
{
using (XmlNodeReader reader = new XmlNodeReader(document))
{
return XDocument.Load(reader, options);
}
}
}
4.xpath
string xml = "<Users><User><Account>admin</Account><Pwd>123</Pwd></User><User><Account>admin1</Account><Pwd>1232</Pwd></User></Users>";
var doc = XDocument.Parse(xml);
var elements = doc.XPathSelectElements("//Account"); //admin admin1
var tmp = doc.XPathSelectElements("//User/Account"); //admin admin1
/*
/ 从根节点选取。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。
*/
From:http://www.cnblogs.com/xuejianxiyang/p/5377486.html
- IM消息透传
- BZOJ2395: [Balkan 2011]Timeismoney
- LeetCode *** 96. Unique Binary Search Trees
- linux awk命令详解
- 应用中Matlab语句学习笔记总结2
- WAP面试题目
- Visual Studio远程调试
- 为Ubuntu 安装Transmission 2.90
- The remote server returned an error: (403) Forbidden.
- select学习小demo--实现网页换肤
- 前端框架OnsenUI学习之初识OnsenUI
- java垃圾回收和收尾
- libao需求页面总结
- map中 key,value 对换 ,互换
- BaiduMap---百度地图官方Demo之调用百度地图(介绍如何调启百度地图实现自身业务功能)
- luajit ffi 访问C动态库
- linux 复制文件时,报cp: omitting directory `XXX'
- 在java应用程序和web应用中的相对路径问题
- 下载的空格变成+, 括号变成乱码-------处理文件名包含%20 不转换成空格
- 搜狐视频Redis私有云平台CacheCloud