C#简单操作XML完整示例源码
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
在IT行业中,XML(eXtensible Markup Language)是一种用于存储和传输数据的标记语言,它的结构清晰,易于机器解析和人类阅读。C#作为.NET Framework的主要编程语言,提供了丰富的API来支持XML的操作。本示例将深入讲解如何使用C#进行简单的XML操作。 我们来看一个基本的XML文件结构。XML文档由一系列元素构成,每个元素可以有子元素,属性等。例如: ```xml <root> <element1 attr1="value1">Text1</element1> <element2>Text2</element2> </root> ``` 在C#中,我们可以使用`System.Xml`命名空间中的类来读取、写入和操作XML。以下是一些关键的类和方法: 1. **XmlDocument**: 这是处理XML文档的主要类,它允许你加载XML,修改节点,然后保存更改。 ```csharp XmlDocument doc = new XmlDocument(); doc.Load("example.xml"); XmlNode node = doc.SelectSingleNode("//element1"); node.InnerText = "NewText"; doc.Save("modified_example.xml"); ``` 2. **XmlNode**: 表示XML文档中的任何节点,如元素、属性、文本等。 3. **XmlNode.SelectNodes** 和 **XmlNode.SelectSingleNode**: 分别用于选择多个和单个匹配XPath表达式的节点。 4. **XmlElement**: 表示XML文档中的元素。你可以创建、添加、删除和修改元素。 5. **XmlAttribute**: 用于处理元素的属性。 接下来,我们讨论XML序列化和反序列化。C#提供了一种便捷的方式将对象转换为XML(序列化)和从XML恢复对象(反序列化)。 ```csharp // 定义一个类 public class MyClass { public string Field1 { get; set; } public int Field2 { get; set; } } // 序列化 MyClass obj = new MyClass() { Field1 = "Value1", Field2 = 2 }; XmlSerializer serializer = new XmlSerializer(obj.GetType()); TextWriter writer = new StreamWriter("myclass.xml"); serializer.Serialize(writer, obj); writer.Close(); // 反序列化 XmlSerializer deserializer = new XmlSerializer(typeof(MyClass)); TextReader reader = new StreamReader("myclass.xml"); MyClass newObj = (MyClass)deserializer.Deserialize(reader); reader.Close(); ``` 此外,`XDocument` 和 `LINQ to XML` 提供了更现代和简洁的API来处理XML,尤其是在处理大型或复杂的XML文档时。 ```csharp XDocument doc = XDocument.Load("example.xml"); var elements = from e in doc.Descendants("element1") select new { Attr1 = e.Attribute("attr1").Value, Text = e.Value }; foreach (var item in elements) Console.WriteLine($"Attr1: {item.Attr1}, Text: {item.Text}"); ``` 在提供的压缩包文件中,`[Content_Types].xml` 文件是OOXML文档的标准组成部分,用于定义不同类型的文件在文档包中的默认扩展名。`_rels` 目录包含了文档中各个部分之间的关系信息。`drs` 可能是文档资源的缩写,但没有具体上下文无法详细解释。这些文件通常与复杂的文档格式如Word、Excel或PowerPoint的内部结构相关。 C#提供了强大的XML处理功能,通过各种类和方法,无论是简单的XML操作还是复杂的序列化和反序列化任务,都能轻松应对。理解并熟练运用这些工具,对于开发涉及数据交换和存储的C#应用至关重要。
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![tar](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![tar](https://img-home.csdnimg.cn/images/20210720083646.png)
![xlsx](https://img-home.csdnimg.cn/images/20210720083732.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![folder](https://csdnimg.cn/release/downloadcmsfe/public/img/folder.005fa2e5.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
- 1
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/a8f3ff7e67104968b196783927a5ae36_weixin_123.jpg!1)
- 粉丝: 0
- 资源: 68
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
最新资源
- jquery 通过ajax请求获取后台数据显示在表格上的方法
- 网页设计是一个结合HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(JS)等技术的过程,旨在创建视觉上吸引
- fsda6fsdasdafsa
- 网页设计是一个结合HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(JS)等技术的过程,旨在创建视觉上吸引
- 基于深度学习+opencv的python车牌识别系统源码(Python毕业设计) (高分项目)
- unity 常用的例子特效
- 基于深度学习+opencv的python车牌识别系统源码(Python毕业设计)
- RPGMAKERVX聚光灯特效(用于使玩家周围看起来明亮的演出)
- 六旋翼无人机PID模型,飞行器本体模型,位置控制,姿态控制,控制分配和电机控制
- jdk-21.0.3-macos-aarch64适用于Mac M系列芯片
![feedback](https://img-home.csdnimg.cn/images/20220527035711.png)
![feedback-tip](https://img-home.csdnimg.cn/images/20220527035111.png)
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)