XML在C#与Unity3D中的实战运用

一、xml文件是什么?

XML是指可扩展标记语言,英文:Extensible Markup Language的缩写。

二、xml文件有什么用?

用来传输和存储数据,比如网络通信,本地配置文件等。

三、xml文件长什么样?

一个文件示例:(包含了三个数据项,每个数据项里有名字、年龄、性别这三个属性)

<?xml version="1.0" encoding="UTF-8"?>
<root>
	<item ID="1">
		<name>Plane</name>
		<age>29</age>
		<sex>1</sex>
	</item>
	<item ID="2">
		<name>Weny</name>
		<age>28</age>
		<sex>0</sex>
	</item>
	<item ID="3">
		<name>Seven</name>
		<age>3</age>
		<sex>1</sex>
	</item>
</root>

四、如何生成xml文件?

  • 制作xml模板格式文件(必须要有两个相同的数据项,否则无法在Excel中进行映射)
<?xml version="1.0" encoding="UTF-8"?>
<root>
	<item ID="">		
		<surname></surname>
		<man></man>
		<woman></woman>
	</item>
	<item ID="">		
		<surname></surname>
		<man></man>
		<woman></woman>
	</item>
</root>
  • 将模板文件导入Excel
    • 在Excel中打开自定义菜单:文件-选项-自定义功能区-主选项卡,将开发工具添加到主选项卡。
    • 在开发工具面板里:XML-源-XML映射-添加模版文件
    • 选中源面板里的模版,映射到表格里。
  • 在Excel中填充数据
    • 数据不会类型,最终都会转化为字符串类型
  • 从Excel中导出附带数据的xml文件
    • 在开发工具面板里:XML-导出

五、如何使用xml文件?

  • 加载xml文件
    • 使用Unity资源系统加载文件
    TextAsset xml = Resources.Load<TextAsset>(filePath);
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(xml.text);
    
    • 在C#文件IO接口加载文件
    XmlDocument doc = new XmlDocument();
    doc.Load(@"D:\Dev\info.xml");
    
  • 解析xml文件
    • 获取根节点下的所有子节点的List:
    XmlNodeList nodLst = doc.SelectSingleNode("root").ChildNodes;
    
    • 将某一个节点转化为一个XmlElement:
    XmlElement ele = nodLst[i] as XmlElement;
    
    • 从XmlElement里获取名称为"ID"的数据:
    string value = ele.GetAttributeNode("ID").InnerText;
    
    数据都是以字符串的形式存储,需要自己转化为对应的数据类型。

六、备注说明

  • 关于 XML 头声明和standalone 的解释
    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    
    • version="1.0" ,它是表示版本为1.0;
    • standalone表示该xml是不是独立的,如果是yes,则表示这个XML文档是独立的,不能引用外部的DTD规范文件;如果是no,则该XML文档不是独立的,表示可以用外部的DTD规范文档。
posted @ 2018-12-05 01:30  PlaneZhong  阅读(2240)  评论(0编辑  收藏  举报