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 ...
随机推荐
- inline元素的margin与padding
替换元素与非替换元素 替换元素(replaced element):所谓替换元素就是浏览器根据元素的标签和属性,来决定元素具体显示什么内容.比如说:img标签的src属性的值用来读取图片信息并且显示出 ...
- .NET Core跨平台:.NET Core项目部署到linux(Centos7)
1.开篇说明 a 上篇博客简单的说明了一下 使用.NET Core开发的一个总结,地址是:(http://www.cnblogs.com/hanyinglong/p/6442148.html),那么这 ...
- 1067: [SCOI2007]降雨量
1067: [SCOI2007]降雨量 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2148 Solved: 554[Submit][Status] ...
- 1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机
1615: [Usaco2008 Mar]The Loathesome Hay Baler麻烦的干草打包机 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: ...
- C++ 容器对象vector和list 的使用
在<<c++ primer>>第四版Exercise Section 9.3.4 的Exercise 9.20 是这样的一道题目:编写程序判断一个vector<int&g ...
- 有关rip路由协议相关知识以及实例配置【第1部分】
有关rip路由协议相关知识以及实例配置[第一部分] RIP呢,这是一个比较重要的知识点,所以它的知识覆盖面很广泛:但是呢,我将会对碰到的问题进行一些分析解刨(主要是为了帮助自己理清思维):也希望能够从 ...
- js页面跳转常用的几种方式
第一种: <script language="javascript" type="text/javascript"> window.location ...
- JAVA发送邮件的DEMO
最近有朋友问邮件怎么发送,就简单写了个demo,因为懒得找jar包,所以项目是创建的maven工程,具体的maven引用的jar如下: <dependency> <groupId&g ...
- windows phone 8.1开发:(消息弹出框)强大的ContentDialog
原文出自:http://www.bcmeng.com/contentdialog/ 在应用开发中我们必不可少的会使用到消息框,windows phone8中的messagebox在windows ph ...
- windows phone 8.1开发:文件选择器FileOpenPicker
原文出自:http://www.bcmeng.com/fileopenpicker/ 今天小梦给大家分享一下 windows phone 8.1中的文件选择器,和之前的windows phone8的不 ...