XML文件解析—System.Xml的一些方法

解析XML并展示于TreeView控件的实战教程 XML(可扩展标记语言)是一种用来存储和传输数据的标记语言。它在web开发、数据交换和配置文件管理中有着广泛应用。XML的数据存储格式不仅仅是纯文本,还包含了关于数据的结构信息,这使得XML文件既易于阅读,也易于通过各种程序进行处理。文档对象模型(Document Object Model,简称DOM)是一个跨平台且语言无关的应用程序接口(API),它将文档作为树结构来表示,让开发者可以很容易地对结构化文档进行随机访问和修改。 阅读详情

最近想使用XML文档作配置文件,在Unity Editor中批量处理一些东西。对于相同的问题见过有使用txt作为配置文件的案例,不过之前简单学过使用C++的TinyXml库解析XML配置文档,并且XML文档具有结构化的优点,觉得使用起来会比较方便。然而,在Unity中选择使用C#进行开发,那么.NET库的方法就必须要学了。

.NET有两种模型来操作XML文档:一种是基于文档对象模型(DOM),使用XmlDocument等类型,将XML一次性读取到内存,采用树结构来描述,支持对节点的随机访问;另一种是基于流模型,使用XmlReader等类型,这样的优点是节约内存空间(特别是当XML文件很大的时候),缺点是不支持随机访问。由于开发需求并不要求特别大的XML文件,故选择采用较为直观的DOM模型。

XML简介:基本概念包括元素、属性。元素表示从一个标签开始到该标签结束的所有部分,可以包括:文本、属性、其它元素。XML语言使用标签来区分各个元素,使用缩进在形式上区分父元素和子元素,每个XML文档都有一个根元素。当XML文档被描述成一个树结构时,每个元素就成为了树的节点,并且节点之间的父子关系与元素保持一致。比如,根元素对应于一个根节点。属性用来描述元素的一些特性,它的使用应该和子元素数据区分开。

下面我们来看.NET类库中基于DOM模型的API。关键的类型有三个:XmlNode,XmlDocument,XmlElement。首先XmlNode是另外两个的基类,并且是一个抽象类,它描述了XML树的节点。XmlDocument用来表示XML文档,它相当于整个文档的“入口”,由它可以获取包括根节点在内的,整个XML树的所有节点。XmlElement表示XML元素,它与XmlNode的区别就像元素与节点概念上的区别一样,从XmlElement的一些方法上就可以看出(比如它可以访问属性,而XmlNode不能)。从继承关系上看,它们之间必有功能相同的方法,实际使用中最常用的是XmlElement,这里列举一些该类型成员和方法的使用方式进行探究。

1. 一些数据成员:

FirstChild:子节点,父节点,体现了树的结构。

InnerText/InnerXml/OuterXml:带Xml的方法会保留内容中的<xxx>标记符号,而InnerText只返回其中的文本,应该是最常用的。示例:

using System;
using System.Xml;
public class Test {

  public stati
C#语言实现XML解析:示例程序及运行指南 XML,即可扩展标记语言,是一种用于存储和传输数据的标记语言。它不同于HTML,后者主要用于显示数据。XML的主要目的是使数据独立于应用程序和呈现格式,从而促进不同系统间的互操作性。它是文本格式,易于阅读和编辑,而且可以被任何文本编辑器处理。XML(Extensible Markup Language,可扩展标记语言)是一种用于存储和传输数据的标记语言。它使用一系列的元素和属性来描述数据,这些元素和属性共同构成了XML的数据结构。 阅读详情

相关推荐

System.Xml_CL

C#实用开发参考大全\ System.Xml命名空间内的类

H3C设备VRF配置实战:5步搞定多业务网络隔离(附排错技巧)

本文详细介绍了在H3C设备上配置VRF(虚拟路由转发)实现多业务网络隔离的实战方法。通过五步配置流程,从创建VPN-instance、绑定接口到配置独立路由表,帮助网络工程师在单台设备上构建逻辑隔离的企业级网络,并分享了高级路由配置与常见排错技巧。

gold8的专栏 936

Cursor+Playwright MCP实战:如何用自然语言一键生成UI自动化测试脚本

本文探讨了如何利用Cursor与Playwright MCP实现自然语言驱动的UI自动化测试脚本生成。通过智能IDE与浏览器自动化协议的结合,开发者可以高效创建稳定的测试脚本,显著提升测试效率与维护性。重点介绍了MCP架构的优势、项目结构最佳实践及团队协作规范,为自动化测试带来革命性改进。

k8l9m0n的博客 441

3GPP协议解读_物理层系列(一)_物理层协议怎么看?

5G NR相关协议一般都在38系列,点进去以后可以看到,38.2xx系列为物理层相关协议,为了掌握物理层相关知识,应该怎么看协议呢?我建议从38.201读起,对38.2xx系列协议有一个整体的把握。

JCMLSY的博客 1327

RK3399跨楼层机器人:SLAM技术与商业应用解析

SLAM(即时定位与地图构建)技术是移动机器人自主导航的核心,通过激光雷达、视觉传感器等多源数据融合实现厘米级定位。RK3399作为高性能嵌入式平台,其六核架构和Mali GPU能高效处理SLAM算法与传感器数据。在商业场景中,这种技术组合可支撑机器人实现跨楼层物资配送、仓库盘点等复杂任务。以SLAMTEC Hermes平台为例,其模块化设计支持电梯控制集成,配合双深度相机和360°激光雷达,在医疗、物流等领域已实现12分钟平均配送效率和99.7%的识别准确率。

weixin_30376083的博客 618

BUCK电路的大信号模型与小信号模型推导

推导开关电源信号模型的核心是将非线性开关过程线性化,常用。如需具体拓扑的推导细节,可进一步说明!

创新改变世界! 1167

2026年职业院校技能大赛中职移动应用与开发模块二10套题库开发培训视频(全套)

2026年职业院校技能大赛中职移动应用与开发模块二10套题库开发培训视频(全套)

我是网络安全兼技能大赛工程师,专注网络安全技术学习与技能大赛实战!持续分享最新的技术文章,帮你少走弯路,一起在技术赛道上进步~ 352

Windows 11 安装 MySQL 8.4:安装包方式、下载、安装、使用

本文详细介绍了在 Windows 11 系统下通过 MSI 安装包方式安装 MySQL 8.4 LTS 社区版的完整流程,包括版本选择、下载、自定义安装路径、服务配置、日志设置、示例数据库创建及后续使用方法。同时提供了命令行客户端与图形化工具 DBeaver 的连接与操作演示,适合初学者和开发者快速搭建本地 MySQL 开发环境。

寒水馨 · 轻量级技术文档 · hanshuixin.org 2257

网格质量评价

CFD中评价网格质量的方法

B_etter_Man的博客 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: Unity5.6大规模地形—地形资源的创建(1)
下一篇: C#数据类型转换工具
fcauto2012
博客等级 码龄11年 59粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值