文章目录
一、XML 文件的存放位置
- 一、XML 文件的存放位置
- 二、C# 读取 XML
- 三、C# 存储修改 XML
(一)只读不写的 XML
放在 Resouces 或者 StreamingAssets 文件夹下,详见 2022-04-22 Unity基础3——Resources资源动态加载_蔗理苦的博客-CSDN博客。
(二)动态存储的 XML
放在 Application.persistentDataPath 路径下
二、C# 读取 XML C# 读取 XML 的方法有几种
-
XmlDocument (把数据加载到内存中,方便读取)
-
XmlTextReader (以流形式加载,内存占用更少,但是是单向只读,使用不是特别方便,除非有特殊需求,否则不会使用)
-
Linq (以后专门讲 Linq 的时候讲)
使用 XmlDocument 类读取是较方便最容易理解和操作的方法
XML 文件:
xxx
18
小明
8
小红
10
(一)读取 xml 文件信息
using System.Xml;
XmlDocument xml = new XmlDocument();
// 通过XmlDocument读取xml文件 有两个API
// 1.直接根据xml字符串内容 来加载xml文件
// 存放在Resorces文件夹下的xml文件加载处理
TextAsset asset = Resources.Load("TestXml");
print(asset.text);
// 通过这个方法 就能够翻译字符串为xml对象
xml.LoadXml(asset.text);
// 2.是通过xml文件的路径去进行加载
// 存放在StreamingAssets文件夹下的xml文件加载处理
xml.Load(Application.streamingAssetsPath + "/TestXml.xml");
(二)读取元素和属性信息
节点信息类:XmlNode 单个节点信息类 节点列表信息:XmlNodeList 多个节点信息类
// 获取xml当中的根节点
XmlNode root = xml.SelectSingleNode("Root");
// 再通过根节点 去获取下面的子节点
XmlNode nodeName = root.SelectSingleNode("name");
// 如果想要获取节点包裹的元素信息 直接 .InnerText
print(nodeName.InnerText);
XmlNode nodeAge = root.SelectSingleNode("age");
print(nodeAge.InnerText);
XmlNode nodeItem = root.SelectSingleNode("Item");
// 第一种方式 直接 中括号获取信息
print(nodeItem.Attributes["id"].Value);
print(nodeItem.Attributes["num"].Value);
// 第二种方式
print(nodeItem.Attributes.GetNamedItem("id").Value);
print(nodeItem.Attributes.GetNamedItem("num").Value);
// 这里是获取 一个节点下的同名节点的方法
XmlNodeList friendList = root.SelectNodes("Friend");
// 遍历方式一:迭代器遍历
foreach (XmlNode item in friendList)
{
print(item.SelectSingleNode("name").InnerText);
print(item.SelectSingleNode("age").InnerText);
}
// 遍历方式二:通过for循环遍历
// 通过XmlNodeList中的 成员变量 Count可以得到 节点数量
for (int i = 0; i
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?