最近简单的学习了一下LINT TO XML,写篇博客在这,方便以后查看~~

1、常用到的类

  XmlDocument --    文档(xml文件)
    XmlElement    --    元素(节点)
    XmlAttribute    --    属性(节点内容)
    XNamespace  --    命名空间(xmlns)
  XDeclaration --  创建XML文件的时候会默认生成 "1.0","UTF-8","yes"
 
2、创建xml文件(Save)
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>
 
3、XML的读取
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初步了解的更多相关文章

  1. Linq之Linq to XML

    目录 写在前面 系列文章 linq to xml 总结 写在前面 在很多情况下,都可以见到使用xml的影子.例如,在 Web 上,在配置文件.Microsoft Office Word 文件(将wor ...

  2. LINQ系列:LINQ to XML类

    LINQ to XML由System.Xml.Linq namespace实现,该namespace包含处理XML时用到的所有类.在使用LINQ to XML时需要添加System.Xml.Linq. ...

  3. LINQ系列:LINQ to XML操作

    LINQ to XML操作XML文件的方法,如创建XML文件.添加新的元素到XML文件中.修改XML文件中的元素.删除XML文件中的元素等. 1. 创建XML文件 string xmlFilePath ...

  4. LINQ系列:LINQ to XML查询

    1. 读取XML文件 XDocument和XElement类都提供了导入XML文件的Load()方法,可以读取XML文件的内容,并转换为XDocument或XElement类的实例. 示例XML文件: ...

  5. Linq to Xml读取复杂xml(带命名空间)

    前言:xml的操作方式有多种,但要论使用频繁程度,博主用得最多的还是Linq to xml的方式,觉得它使用起来很方便,就用那么几个方法就能完成简单xml的读写.之前做的一个项目有一个很变态的需求:C ...

  6. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  7. c#操作xml文件(XmlDocument,XmlTextReader,Linq To Xml)

    主界面

  8. Linq对XML的简单操作

    前两章介绍了关于Linq创建.解析SOAP格式的XML,在实际运用中,可能会对xml进行一些其它的操作,比如基础的增删该查,而操作对象首先需要获取对象,针对于DOM操作来说,Linq确实方便了不少,如 ...

  9. LINQ to XML 编程基础

    1.LINQ to XML类 以下的代码演示了如何使用LINQ to XML来快速创建一个xml: 隐藏行号 复制代码 ?创建 XML public static void CreateDocumen ...

随机推荐

  1. UVa 1588 换抵挡装置

    前言 题目 大意是说,两个槽能够插在一起,并保证每一列的高度不高于3,保证最短长度. 思路 思路很简单,取短字符串遍历长字符串的每一个位置,纪录下位置,并取最短即可. 实现 //习题3-11 换抵挡装 ...

  2. 小白该怎么学《马哥Linux从入门到精通》

    首先,必须说明我已经不是小白啦~现在的我在国内某独角兽担任运维工程师,带着一个四人小团队,在运维方面也算是有些心得,勉强过来回答一下这个问题,就算抛砖引玉了. 所有人都是从小白阶段过来的,我=也经历过 ...

  3. [Spark] - SparkCore程序优化总结

    http://spark.apache.org/docs/1.6.1/tuning.html1) 代码优化 a. 对于多次使用的RDD,进行数据持久化操作(eg: cache.persist) b. ...

  4. 将两个列不同的DataTable合并成一个新的DataTable

    /// <summary>         /// 将两个列不同(结构不同)的DataTable合并成一个新的DataTable         /// </summary> ...

  5. idea 使用常见问题处理

    问题一: 项目中使用了 lombok,但是代码中一直报错,提示 bean 注入失败,set 和 get 方法都飘红 解决:idea 中安装 lombok 插件,安装方法自行百度吧~ 如果是用的 ecl ...

  6. 读书笔记 effective c++ Item 34 区分接口继承和实现继承

    看上去最为简单的(public)继承的概念由两个单独部分组成:函数接口的继承和函数模板继承.这两种继承之间的区别同本书介绍部分讨论的函数声明和函数定义之间的区别完全对应. 1. 类函数的三种实现 作为 ...

  7. 关于Tarjan(1)

    众所周知, 求有向图的强连通分量的Tarjan算法是以其发明者Robert Tarjan命名的.Robert Tarjan还发明了求双连通分量的Tarjan算法,以及求最近公共祖先(LCA)的离线Ta ...

  8. iOS 如何保持线程一直在运转(二)

    一.接着上一篇通过NSThread可以方便的创建一个线程,并且启动线程的Runloop,在线程体中执行一个while循环 然后我们就可以方便得利用这个线程了 - (void)threadRun:(NS ...

  9. CentOS下查看nginx和php的编译参数

    在已经编译安装好的nginx和php的server上是可以查看之前编译时候的参数的,方法如下. 1.查看nginx的编译参数 # nginx -V nginx version: nginx/1.9.4 ...

  10. Weblogic虚拟目录

    p.MsoNormal,li.MsoNormal,div.MsoNormal { margin: 0cm; margin-bottom: .0001pt; text-align: justify; f ...