C#基础巩固(2)-Linq To XML创建XML

时间:2023-03-09 15:22:30
C#基础巩固(2)-Linq To XML创建XML

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

1.后缀名.xml结尾

2.有一行描述

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

如图:

C#基础巩固(2)-Linq To XML创建XML

一个正确的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这个文件。

内容如下:

C#基础巩固(2)-Linq To XML创建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文件

C#基础巩固(2)-Linq To XML创建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");
}