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 ...
随机推荐
- Maven settings.xml配置解读
本文对${maven.home}\conf\settings.xml的官方文档作个简单的解读,请确保自己的maven环境安装成功,具体安装流程详见Maven安装 第一步:看settings.xml的内 ...
- swift -- 类中的方法
一. 引用类型 类 在类中定义方法 class Person { //属性 var name : String = "" //方法 //实例方法 : 在类里面创建一个方法 fun ...
- 统计solr multivalued 字段中数目
问题是这样的:已有若干multivalued 字段, 需要统计出 multivalued 字段中数目. 比如 *DOC1* <doc> <arr name="multi&q ...
- 菜鸟聊JavaScript中this
菜鸟聊this this在JavaScript中是一个比较头疼的问题,我现在以一枚菜鸟的观点结合代码简单的谈下JavaScript中的this指向问题. 1.例子1 function a() { va ...
- [译]Selenium Python文档:七、WebDriver API接口
由于API文档格式不太适合cnblog博客,暂且翻译一部分,且暂未校对 注意:这不是官方文档,官方 API文档在这里. 本章包含Selenium WebDriver的所有接口 推荐import风格 本 ...
- windows 下编译php扩展库pecl里的扩展memcache
Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像.视频.文件以及数据库检索的结果等.简单的说就是将数据调用到内 ...
- nfs服务端配置文件详解
配置参数语法 配置文件路径 /etc/exports 可以使用#进行注释说明 一个完整的配置实例至少需要3个参数 1.被共享的目录 必须是存在的目录 2.向谁共享 可以指定主机或网络范围,支持通配符* ...
- TensorFlow安装-ubuntu
windows下某些tensorflow例子跑不成功,比如https://www.tensorflow.org/tutorials/wide 中的例子报下面的错误:' 'NoneType' objec ...
- linux—粘滞位的设置
粘滞位(Stickybit),或粘着位,是Unix文件系统权限的一个旗标.最常见的用法在目录上设置粘滞位,如此以来,只有目录内文件的所有者或者root才可以删除或移动该文件.如果不为目录设置粘滞位,任 ...
- java实现八种排序算法并测试速度(详细)
算法代码: /** * Created by CLY on 2017/3/17. */ package pers.cly.sorting; /** * 排序工具类,里面包含各种排序方法 */ publ ...