Unity 中使用XML的预备知识
发布日期:2021-06-29 19:14:14
浏览次数:2
分类:技术文章
本文共 3447 字,大约阅读时间需要 11 分钟。
在整个XML处理过中,需要使用到的几个类的关系图:
XMLNode 为抽象类,还实现了如下接口public abstract class XmlNode : ICloneable, System.Collections.IEnumerable, System.Xml.XPath.IXPathNavigable
注:该类实现了W3C文档对象模型(DOM)1级核心和Core DOM级别2.DOM是XML文档的内存(高速缓存)树表示显示。是DOM的.NET实现基类,它支持XPath选择并提供编辑功能,,,
它的属性:
Attributes :(只读) 返回去一个XmlAttributeCollection含有该节点的属性,,如果节点类型是XmlAttributeCollection,则返回节点的属性,否则,此属性返回null;public virtual System.Xml.XmlAttributeCollection Attributes { get; }
BaseURI:
返回 串,节点的加载位置,如果没有节点基本URL,则为String.Emptypublic virtual string BaseURI { get; }
ChildNodes : 获得所有子节点
public virtual System.Xml.XmlNodeList ChildNodes { get; }
后知后觉:这是一个抽象类的方法和属性,,,()
XMLElement 主要是针对节点的一些属性进行操作
下面简单介绍它的属性,方法:- Attributes : 包含此节点的属性列表
public override System.Xml.XmlAttributeCollection Attributes { get; }
- HasAttributes :当前节点是否具有属性
public virtual bool HasAttributes { get; }
- InnerText :节点及其所有子节点连接值
public override string InnerText { get; set; }
- InnerXml :这个节点的子标记
public override string InnerXml { get; set; }
- Name :节点的限制名称 对于XmlElement节点,这是元素的标签名称。
- NodeType :节点类型
ParentNode :获取节点的父节点
CloneNode() :创建此节点的副本
public override System.Xml.XmlNode CloneNode (bool deep);
- getAttribute() : 获取属性;
public virtual string GetAttribute (string name);
- GetAttributeNode () :获取属性节点
public virtual System.Xml.XmlAttribute GetAttributeNode (string name);
注:我想您看到这里也觉得有些烦了,,既然有获取(get)那肯定有设置(set),还有删除等方法,这里不再赘述,想了解具体一点可以去查
XMLDocument 主要是针对节点的CUID(用户识别号)操作
下面列举出个人人为比较常用的属性,方法:
- DocumentElement :获取文档的根,没有则返回null
- DocumentType :类型
- InnerText :内文,节点及其所有子节点的值
public override string InnerText { set; }
- InnerXml :当前节点的子节点标记
public override string InnerXml { get; set; }
- Name 名称 , LocalName 本地名称
- XmlNodeType :节点类型
- CloneNode() : 克隆节点
- CreateAttribute () : 创建属性
public System.Xml.XmlAttribute CreateAttribute (string name);
- CreateNode(): 创建节点
public virtual System.Xml.XmlNode CreateNode (string nodeTypeString, string name, string namespaceURI);
- Load() : 加载 三个重载
//参数是:包含要加载的XML文档的流。public virtual void Load (System.IO.Stream inStream);//参数是:从指定的TextReader加载XML文档。public virtual void Load (System.IO.TextReader txtReader);//参数是:包含要加载的XML文档的文件的URL。URL可以是本地文件或HTTP URL(Web地址)//好理解,经常用public virtual void Load (string filename);
- Save () : 保存 三个重载函数
//注释同上段代码public virtual void Save (System.IO.Stream outStream);public virtual void Save (System.IO.TextWriter writer);public virtual void Save (string filename);
简单使用:
using System.Xml;using UnityEngine;public class XmlHandler : MonoBehaviour { XmlDocument Xdoc = null; void Start() { Xdoc = new XmlDocument(); //实例化 Debug.Log("当前目录是:" + Application.dataPath); Xdoc.Load(Application.dataPath + "/data.xml"); //加载XML 文件 XmlElement root = Xdoc.DocumentElement; //获取跟节点 Debug.Log("根元素是:"+ root.Name); XmlNode dataNode = root.SelectSingleNode("data"); //获取根节点下的子节点 Debug.Log("节点名称"+dataNode.Name); for (int i = 0; i < dataNode.ChildNodes.Count; i++) { XmlElement xmElement = dataNode.ChildNodes[i] as XmlElement; if(xmElement.GetAttribute("id") == "1") { Debug.Log(dataNode.InnerXml); //节点下的内容(string) Debug.Log("文本内容:"+dataNode.ChildNodes[i].InnerText); //获取文本内容 xmElement.SetAttribute("id", "3"); //属性更改id值 } } //保存更改后的xml文件,, Xdoc.Save(Application.dataPath + "/data.xml"); //如果这样写的话,会得到一个新的xml文件,,而原来的文件将不会被改变 //Xdoc.Save(Application.dataPath + "/data1.xml"); }}
转载地址:https://czhenya.blog.csdn.net/article/details/78034254 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2024年04月13日 15时24分55秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
melis cedar模块的链接脚本
2019-04-30
RTThread IO设备和驱动学习
2019-04-30
mmap函数实现
2019-04-30
音频基础知识详解
2019-04-30
Linux 命令xxd功能
2019-04-30
repo使用指南
2019-04-30
gstreamer-test
2019-04-30
GDB基本用法
2019-04-30
动态范围控制(DRC)简介
2019-04-30
使用C语言查看一个文件夹中所有文件及目录
2019-04-30
音频硬件基础
2019-04-30
TS流分析
2019-04-30
详解YUV420数据格式
2019-04-30
Gstreamer学习笔记(2):GstElement定义、连接
2019-04-30
GStreamer建议的学习步骤和网页链接汇总
2019-04-30
Ubuntu14.04编译安装GStreamer
2019-04-30