LINQ TO XML初步了解
最近简单的学习了一下LINT TO XML,写篇博客在这,方便以后查看~~
1、常用到的类
private static void Xml()
{
XDocument xml = new XDocument();//描述会自动创建 Encoding为UTF-8 XDeclaration dec=new XDeclaration("1.0","UTF-8","yes");
XNamespace xmln = "SB-GAVIN-AA";//添加xml命名空间,xmlns
XNamespace xm = "GAVIN-AA";
XElement eleHead = new XElement(xmln + "Head");//创建节点,并声明该节点的命名空间为xmln
XElement eleDetail = new XElement("name");//创建节点,若前面有声明过命名空间,不会默认继承,会添加 xmlns = ""
XElement ele = new XElement(xm + "column");//创建节点,每个节点的命名空间可以不同
XAttribute appearance = new XAttribute("appearance", "nice"); //创建属性
XAttribute name = new XAttribute("name", "Hao"); //创建属性
xml.Add(eleHead); //添加根节点
eleHead.Add(eleDetail); //添加子节点
eleDetail.Add(ele); //添加子节点
eleDetail.Add(appearance); //子节点添加属性
xml.Save("3.xml"); //保存文件,保存路径在Debug目录下
}
<?xml version="1.0" encoding="utf-8"?>
<Head xmlns="SB-GAVIN-AA">
<name appearance="nice" xmlns="">
<column xmlns="GAVIN-AA" />
</name>
</Head>
private static void LoadXml()
{
XDocument xdoc = XDocument.Load(@"..\Debug\xml\3.xml");//.. -------> .....\bin\
List<XElement> ele = new List<XElement>();
string Apprearance = "nice"; XNamespace xmln = "SB-GAVIN-AA";
XNamespace xm = "GAVIN-AA";
XElement e = xdoc.Element(xmln + "Head");//元素含有xmlns时,添加XNamespace来定位节点。没有xmlns则不用添加XNamespace
foreach (XElement item in e.Elements())
{
//判断这个元素的名字是不是name,如果是name,看内容是不是nameTxt
if (item.Name.LocalName == "name")
{
if (item.Attribute("appearance").Value == Apprearance)
{
//符合条件的节点,取其父级
ele.Add(item.Parent);
}
}
}
foreach (XElement item in ele)
{
Console.WriteLine("appearance:{0}", item.Element("name").Attribute("appearance").Value); //输出结果:appearance:nice
}
Console.ReadKey();
}
4、XML节点的删改
(删)原xml文件:
<?xml version="1.0" encoding="utf-8"?>
<Head>
<name appearance="nice">
<column name="Hao" />
</name>
<column />
</Head>
private static void RemoveXml()
{
XDocument xdoc = XDocument.Load(@"..\Debug\xml\4.xml");
XElement e = xdoc.Element("Head");//定位节点Head foreach (XElement xxElement in e.Elements())
{
if (xxElement.Name.LocalName == "column")
{
xxElement.Remove();//删除根节点Head里的子节点column
xdoc.Save(@"..\Debug\xml\4.xml");//保存修改
}
}
Console.ReadKey();
}
}
删减后:
<?xml version="1.0" encoding="utf-8"?>
<Head>
<name appearance="nice">
<column name="Hao" />
</name>
</Head>
(改)
private static void updateXml()
{
XDocument xdoc = XDocument.Load(@"..\Debug\xml\4.xml");
XElement e = xdoc.Element("Head");
string att = "supnice";
string name = "Hao";
foreach (XElement xxElement in e.Elements())
{
if (xxElement.Name.LocalName == "name")
{
xxElement.Name = name;//修改节点名字
xxElement.Attribute("appearance").Value = att;//修改appearance的属性为supnice
xdoc.Save(@"..\Debug\xml\4.xml");//保存修改
}
}
}
LINQ TO XML初步了解的更多相关文章
- Linq之Linq to XML
目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将wor ...
- LINQ系列:LINQ to XML类
LINQ to XML由System.Xml.Linq namespace实现,该namespace包含处理XML时用到的所有类.在使用LINQ to XML时需要添加System.Xml.Linq. ...
- LINQ系列:LINQ to XML操作
LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...
- LINQ系列:LINQ to XML查询
1. 读取XML文件 XDocument和XElement类都提供了导入XML文件的Load()方法,可以读取XML文件的内容,并转换为XDocument或XElement类的实例. 示例XML文件: ...
- Linq to Xml读取复杂xml(带命名空间)
前言:xml的操作方式有多种,但要论使用频繁程度,博主用得最多的还是Linq to xml的方式,觉得它使用起来很方便,就用那么几个方法就能完成简单xml的读写.之前做的一个项目有一个很变态的需求:C ...
- [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界
本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...
- c#操作xml文件(XmlDocument,XmlTextReader,Linq To Xml)
主界面
- Linq对XML的简单操作
前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...
- LINQ to XML 编程基础
1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocumen ...
随机推荐
- ajax 提交表单(文件)
废话不多说,自己看代码 引入的jquery <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js&quo ...
- Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 18
工程启动的时候有报下面这个错误的,更新下工程的jar包依赖,然后在工程的pom文件里加上下面的jar包 Caused by: java.lang.RuntimeException: java.io.I ...
- python IP地址转16进制
python IP地址转16进制 第一种方法: 通过socket.inet_aton实现 import socket from binascii import hexlify ary='192.168 ...
- windows下的python flask环境搭建
在Windows中搭建flask框架分为如下几步 1. 下载ez_setup.py文件,然后在cmd中执行 链接:http://pan.baidu.com/s/1qXOSeHu 密码:jkbw pyt ...
- Python总的字符串
Python总最常用的类型,使用单引号双引号表示.三引号之间的字符串可以跨多行并且可以是原样输出的. Python中不支持字符类型,字符也是字符串. ---字符串的CRUD [1:3] [:6] -- ...
- 对VC++6.0爱得深沉(一)安装vc++6.0,支持winXP,win7,win8.1,win10
[欢迎入坑] 从这里起,我称VC++6.0为小c. 为什么我对小c爱得深沉? 虽然饱受非议,但是,我只想说,我太单纯,小c轻轻松松成功运行在各个win平台,对于我来说她:高速.小巧.便捷.听话.可定制 ...
- 分离数据库时出错:无法对数据库'XXX' 执行删除,因为它正用于复制"的解决方法
出现的原因是要分离的数据库是一个发布订阅的数据库.因为正在复制,所以无法脱机. 解决办法是停止发布订阅,或者删掉它..再分离.有部分情况是在复制目录下并没有看到发布订阅. 有可能是因为以前建立发布订阅 ...
- AutoIt 脚本小试——刷网易云音乐歌单
AutoIt 确实是个很强大的脚本工具. 如果早知道有这个,当初是怎么都不会去学易语言的 (๑•̀ω•́๑) 这是个简单脚本 = ๛ก(ー̀ωー́ก) 用来增加歌单播放次数和个人的听歌量. 原理不过 ...
- iOS开发之instancetype
instancetype和id使用方法类似,但他们还有不同点: (1)instancetype在类型表示上,跟id一样,可以表示任何对象类型 (2)instancetype只能用在返回值类型上,不能像 ...
- pg_config executable not found
Error: pg_config executable not found. Please add the directory containing pg_config to the PATH or ...