C#基础巩固(2)-Linq To XML创建XML
一、首先要清楚一个正确的XML基本格式是怎样的。
1.后缀名.xml结尾
2.有一行描述
3.有且仅有一个根节点。
如图:
一个正确的xml文件能够被浏览器打开且显示。所以判断一个xml文件有没有错误也可以用浏览器打开看有没有报错。
二、传统的XML创建方式。
命名空间:System.XML
用到的类库:XmlDocument -文档
XmlElement -元素
XmlAttribute -属性
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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", "123"); //创建属性 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","123"), new XElement("person","我是一个文本")
) ).Save("3.xml"); }
分类:
C#
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?