最近简单的学习了一下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. oracle查看用户所占用的表空间

    select * from (select owner || '.' || tablespace_name name, sum(b) g from (select owner, t.segment_n ...

  2. TP框架数据库操作(增删改)

    首先选择一张表,对其进行操作: 对数据库操作之前首先要创建模型: $n = M("account"); 数据库添加数据: 1.使用数组: 1.使用数组 $arr = array(& ...

  3. 黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试)

    黑苹果macOS Sierra 10.12 安装教程(venue11 pro测试) 2017-03-12 03:46:24 by SemiconductorKING PS:刚刚装好黑苹果,来记录一篇折 ...

  4. <context:property-placeholder/>元素

    <context:property-placeholder/>元素 PropertyPlaceholderConfigurer实现了BeanFactoryPostProcessor接口,它 ...

  5. 476. Number Complement

    题目 Given a positive integer, output its complement number. The complement strategy is to flip the bi ...

  6. Android开发之NavigationView的使用

    NavigationView主要是和DrawerLayout框架结合使用,来完成抽屉导航实现侧边栏 引用一段官方文档的示例代码 <android.support.v4.widget.Drawer ...

  7. IOS百度地图之--->第二篇《大头针__简单使用及自定义》

    呵呵!大家不要只看帖不回帖么,要不然我都没有积极性了. 第一步:创建一个用来呈现mapview的viewcontroller,不废话直接贴代码        BasicMapViewControlle ...

  8. 读书笔记 effective c++ Item 37 永远不要重新定义继承而来的函数默认参数值

    从一开始就让我们简化这次的讨论.你有两类你能够继承的函数:虚函数和非虚函数.然而,重新定义一个非虚函数总是错误的(Item 36),所以我们可以安全的把这个条款的讨论限定在继承带默认参数值的虚函数上. ...

  9. Docker remote API简单配置使用

    1.启动docker remote API的方式如下: docker -d -H uninx:///var/run/docker.sock -H tcp://0.0.0.0:5678 2.但是为了伴随 ...

  10. spring data jpa自定义bean字段映射

    当遇到复杂多表查询时,并且同时还需要确保查询性能,此时则需要使用自定义sql查询,然而spring data jpa对于自定义sql则需使用查询需要在对应的bean中做太多的配置映射,我尝试了一下,最 ...