一、首先要清楚一个正确的XML基本格式是怎样的。

1.后缀名.xml结尾

2.有一行描述

3.有且仅有一个根节点。

如图:

一个正确的xml文件能够被浏览器打开且显示。所以判断一个xml文件有没有错误也可以用浏览器打开看有没有报错。

二、传统的XML创建方式。

命名空间:System.XML

用到的类库:XmlDocument -文档

XmlElement  -元素

XmlAttribute -属性

代码:

static void Main(string[] args)
{
TraditionalCreateXML();
}
private static void TraditionalCreateXML()
{
XmlDocument xdoc = new XmlDocument();
//所有的元素使用文档节点(XmlDocument)创建
XmlDeclaration xdec = xdoc.CreateXmlDeclaration("1.0", "gb2312", null); //xml描述
xdoc.AppendChild(xdec); //添加描述
XmlElement xele = xdoc.CreateElement("root"); //创建节点1
XmlElement xele2 = xdoc.CreateElement("person"); //创建节点2
xdoc.AppendChild(xele); //xdoc添加节点 --根节点
xele.AppendChild(xele2); //在节点1(xele)下添加一个节点2(xele2)
XmlAttribute xAttr = xdoc.CreateAttribute("id"); //创建属性
xAttr.Value = "123"; //属性的值
xele.Attributes.Append(xAttr); //把属性插入到节点
XmlText txt = xdoc.CreateTextNode("我是文本节点"); //创建文本
xele2.AppendChild(txt); //把文本插入到节点
xdoc.Save("1.xml");
}

  关键的思想是:创建元素->添加元素,执行完上面代码 在bin->debug目录下找到1.xml这个文件。

内容如下:

三、Linq To XML创建XML

命名空间: System.XML.Linq;

类库: XDocument  -文档

XElement -元素

XAttribute - 属性

3.1 Linq To XML用法

代码:

 static void Main(string[] args)
{
LinqToXMLCreateXML();
//TraditionalCreateXML();
}
private static void LinqToXMLCreateXML()
{
XDocument xdoc = new XDocument();
//描述会自动创建 Encoding为UTF-8 如果想改成GB2312的 XDeclaration dec=new XDeclaration("1.0","gb2312","yes");
XElement xRoot = new XElement("root"); //创建节点
XElement xele2 = new XElement("person", "我是文本");
XAttribute xAttr = new XAttribute("Id", ""); //创建属性
xdoc.Add(xRoot); //添加节点
xRoot.Add(xele2);
xRoot.Add(xAttr); //添加属性
xdoc.Save("2.xml");
}

执行代码,在bin->debug 目录下找到2.xml文件

从上面代码可以看出,Linq TO XML的方法比传统的方法简单,特点有。

1.创建元素的时候可以用 键/值(key/value)对的方法创建元素并赋值

2.添加元素或者属性的时候,都是用Add()方法。

3.2真正的linq语法

linq 语法主要特点: 1.基于函数式    f1().f2().f3().....

2.链式编程

把上面3.1的代码写成linq语法为:

static void Main(string[] args)
{
LinqToXMLCreateXML2();
//LinqToXMLCreateXML();
//TraditionalCreateXML();
}
private static void LinqToXMLCreateXML2()
{
new XDocument(
new XElement("root",
new XAttribute("Id",""),
new XElement("person","我是一个文本")
)
).Save("3.xml");
}

C#基础巩固(2)-Linq To XML创建XML的更多相关文章

  1. 使用LINQ TO XML 创建xml文档,以及读取xml文档把内容显示到GridView例子

    首先,准备了一个Model类 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

  2. xml介绍+xml创建+xml读取

    1.xml介绍:(URL:https://blog.csdn.net/weixin_37861326/article/details/81082144) xml是用来传输内容的,是w3c推荐的 2.使 ...

  3. 使用Dom4j创建xml文档

    我们学习dom4j为的就是使用它来创建XML文档.读取文档等更为方便,下面通过一个实例来展示如何通过dom4j去创建XML文档.展示怎样通过两种方式去创建元素,可以直接通过addElement方法返回 ...

  4. 如何用Dome4j(2.2.1)创建Xml

    XML解析器常见的有两种: 1.SAX解析器,用于xml的简单API 2.DOM解析器,文档对象模型 DOM就是利用对象来把文本模型化,但是模型实现有以下几个基本的点: 1. 用来表示.操作文档的接口 ...

  5. XML基础学习02<linq to xml>

    Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...

  6. C#中如何创建xml文件 增、删、改、查 xml节点信息

    XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Lang ...

  7. 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值

    前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...

  8. .net中创建xml文件的两种方法

    .net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...

  9. Linq专题之创建Linq查询表达式

    本节我们主要介绍一下如何创建查询集合类型,关系数据库类型,DataSet对象类型和XML类型的数据源的Linq查询表达式. 下面在实例代码ReadyCollectionData()函数创建了准备的数据 ...

随机推荐

  1. RNN,LSTM中如何使用TimeDistributed包装层,代码示例

    本文介绍了LSTM网络中的TimeDistributed包装层,代码演示了具有TimeDistributed层的LSTM网络配置方法. 演示了一对一,多对一,多对多,三种不同的预测方法如何配置. 在对 ...

  2. 喜闻乐见-Activity生命周期

    Activity的生命周期,对于Android开发者来说,再熟悉不过了.但是我们接触到的资料,绝大部分都只是谈了一些表面上的东西,例如各个回调的顺序等等.本文试图换个角度来讲解,也希望对各位读者有所帮 ...

  3. js调用android本地java代码

    js调用android本地java代码 当在Android上使用WebView控件开发一个Web应用时,可以创建一个通过Javascript调用Android端java代码的接口.也就是可以通过Jav ...

  4. [20180316]为什么不使用INDEX FULL SCAN (MIN/MAX).txt

    [20180316]为什么不使用INDEX FULL SCAN (MIN/MAX).txt --//链接:http://www.itpub.net/thread-2100456-1-1.html.自己 ...

  5. asp.net mvc5中的过滤器重写

    asp.net mvc5中增加了一种过滤器类型叫过滤器重写,这种过滤器类型可以在操作或者控制器上忽略更高层次上设置的过滤器类型,它可以重写五种基本的过滤器接口类型:IAuthenticationFil ...

  6. tidb在DDL语句方面的测试

    Mysql与tidb测试数据为8000万行. 1.修改一个字段的列名,比如将“ctime”修改为“cctime”. Tidb测试: MySQL测试: 2.同一属性之间切换,即修改一个字段的属性大小.比 ...

  7. Windows端部署zabbix-agent

    一.windows客户端的配置关闭windows防火墙或者开通10050和10051端口(1).关闭防火墙(不推荐直接关闭,测试可以这样做,尤其是最近勒索病毒猛烈)开始—控制面板—windows防火墙 ...

  8. input 属性radio中设置checked 不生效

    同一个页面中有许多地方都用到了单选按钮并设置了默认选中 , 结果在运行的时候发现单选按钮没有被默认选中 由于是复制然后修改个别属性 ,然后直接使用的 , 所以name值忘记修改了 , 单选框是根据na ...

  9. 洛谷P1223

    #include <iostream>#include <algorithm>#include <cstdio>using namespace std;int b[ ...

  10. centos7下安装docker(10容器底层--cgroup和namespace)

    cgroup和namespace是实现容器底层的重要技术 cgroup:实现资源限制 namespace:实现资源隔离 1.cgroup:control group Linux操作系统通过cgroup ...