• 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:Devinfo.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规范文档。
  • 相关阅读:
    TCP性能调优
    Qt 实现应用程序单实例运行
    table多选
    多选删除最佳处理
    获取路由或路径
    当前页面打开新页面
    vue版本更新index.html缓存
    vue项目js和css文件名避免浏览器缓存再vue.config.js中配置
    vue动态表格
    IE网页被缓存,get接口缓存
  • 原文地址:https://www.cnblogs.com/planezhong/p/10068825.html
Copyright © 2020-2023  润新知