C#基础巩固(2)-Linq To XML创建XML
一、首先要清楚一个正确的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的更多相关文章
- 使用LINQ TO XML 创建xml文档,以及读取xml文档把内容显示到GridView例子
首先,准备了一个Model类 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- xml介绍+xml创建+xml读取
1.xml介绍:(URL:https://blog.csdn.net/weixin_37861326/article/details/81082144) xml是用来传输内容的,是w3c推荐的 2.使 ...
- 使用Dom4j创建xml文档
我们学习dom4j为的就是使用它来创建XML文档.读取文档等更为方便,下面通过一个实例来展示如何通过dom4j去创建XML文档.展示怎样通过两种方式去创建元素,可以直接通过addElement方法返回 ...
- 如何用Dome4j(2.2.1)创建Xml
XML解析器常见的有两种: 1.SAX解析器,用于xml的简单API 2.DOM解析器,文档对象模型 DOM就是利用对象来把文本模型化,但是模型实现有以下几个基本的点: 1. 用来表示.操作文档的接口 ...
- XML基础学习02<linq to xml>
Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...
- C#中如何创建xml文件 增、删、改、查 xml节点信息
XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Lang ...
- 自己动手之使用反射和泛型,动态读取XML创建类实例并赋值
前言: 最近小匹夫参与的游戏项目到了需要读取数据的阶段了,那么觉得自己业余时间也该实践下数据相关的内容.那么从哪入手呢?因为用的是Unity3d的游戏引擎,思来想去就选择了C#读取XML文件这个小功能 ...
- .net中创建xml文件的两种方法
.net中创建xml文件的两种方法 方法1:根据xml结构一步一步构建xml文档,保存文件(动态方式) 方法2:直接加载xml结构,保存文件(固定方式) 方法1:动态创建xml文档 根据传递的值,构建 ...
- Linq专题之创建Linq查询表达式
本节我们主要介绍一下如何创建查询集合类型,关系数据库类型,DataSet对象类型和XML类型的数据源的Linq查询表达式. 下面在实例代码ReadyCollectionData()函数创建了准备的数据 ...
随机推荐
- screen mac linux下一种让程序后台运行的方法
1: screen 场景的意思.字面意思就是软件运行在不同场景 (1)创建会话 使用命令“screen -S RunWork”来创建一个screen会话,命令执行之后,就会得到一个新的shell窗口, ...
- Asp.Net WebApi Get请求整理(一)
Asp.Net WebApi+JQuery Ajax的Get请求整理 一.总结 1.Asp.Net WebApi默认不支持Get请求,需要在Action方法上指定[HttpGet], 除非Action ...
- EF 更新部分字段写法
EF 更新部分字段写法 1.EF默认是查询出来,修改后保存: 2.设置不修改字段的IsModified为false,此方法不需要先从数据库查询出实体来(最优方法): db.Set<T>() ...
- 简单易懂的程序语言入门小册子(3):基于文本替换的解释器,let表达式,布尔类型,if表达式
let表达式 let表达式用来声明一个变量. 比如我们正在写一个模拟掷骰子游戏的程序. 一个骰子有6个面. 所以这个程序多次用到了6这个数字. 有一天,我们忽然改变主意,要玩12个面的骰子. 于是我们 ...
- C#检测U盘是否插入
public partial class Form1 : Form { #region u盘属性 public const int WM_DEVICECHANGE = 0x219;//U盘插入后,OS ...
- httpd的一些知识点
一.httpd持久化连接:使用httpd之telnet测试其keepalive连接状态 作用:连接建立后,每个资源获取结束不会断开连接,而继续等待其他资源请求并完成传输. 1.KeepAlive O ...
- golang中的init函数以及main函数
首先我们看一个例子:init函数: init 函数可在package main中,可在其他package中,可在同一个package中出现多次. main函数 main 函数只能在package ma ...
- 【ArcGIS】安装ArcEngine 10的顺序
Step1.安装VS 2010Step2.安装ArcGIS Desktop(不可跳过这步),如果直接安装ArcEngine,将出现如下错误提示因此必须首先安装ArcGIS Desktop或者ArcGI ...
- centos7下安装docker(8.1运行容器)
从今天开始学习docker container 1.docker run 之前我们在学习制作镜像以及制作私有仓库的时候已经用到docker run -it以及docker run -d来临时运行一个容 ...
- 椭圆曲线签名算法的v的定义
在之前的个个与签名相关的地方我都对v的定义感到十分困惑,知道查看了黄皮书以后才对它的作用有了一定地了解,如下: (v is the recovery id: a 1 byte value specif ...