Unity使用Mono.Xml代替System.Xml 测试
测试环境
操作系统:Windows8.1
开发工具:Unity5.5.2
1、新建一个测试项目,观测引用System.Xml与Mono.Xml解析文件正确性,与打包后APK体积大小。
2、Mono.Xml 用例
using UnityEngine;
using Mono.Xml;
using System.Security; public class MonoXmlTest : MonoBehaviour { void Start () { SecurityParser parser = new SecurityParser(); string xmlPath = "test"; parser.LoadXml(Resources.Load(xmlPath).ToString()); SecurityElement element = parser.ToXml(); foreach (SecurityElement node in element.Children)
{
if (node.Tag == "table")
{
string wave = node.Attribute("wave");
string level = node.Attribute("level");
string name = node.Attribute("name");
Debug.Log("wave:" + wave + " level:" + level + " name:" + name);
} }
} }
- 结果正确:

- 安装包大小:

编译日志可以观测到没有引用System.Xml.dll(该文件约1mb)
Mono dependencies included in the build
Dependency assembly - Mono.Security.dll
Dependency assembly - System.Core.dll
Dependency assembly - System.dll
Dependency assembly - mscorlib.dll
Dependency assembly - UnityEngine.UI.dll
Dependency assembly - UnityEngine.Networking.dll
Dependency assembly - UnityEngine.PlaymodeTestsRunner.dll
Dependency assembly - Assembly-CSharp.dll
3、System.xml用例
using UnityEngine;
using System.Xml; public class SystemXmlTest : MonoBehaviour { // Use this for initialization
void Start () { XmlDocument xml = new XmlDocument();
XmlReaderSettings set = new XmlReaderSettings();
xml.LoadXml(Resources.Load("test").ToString()); XmlNodeList nodes = xml.SelectSingleNode("ROOT").ChildNodes; foreach (XmlElement node in nodes)
{
string wave = node.GetAttribute("wave");
string level = node.GetAttribute("level");
string name = node.GetAttribute("name"); Debug.Log("wave:" + wave + " level:" + level + " name:" + name);
} } }
- 结果正确:

- 安装包大小:

- 编译日志:可以观测到引用System.Xml.dll(该文件约1mb)
编译日志:可以观测到引用System.Xml.dll(该文件约1mb) Mono dependencies included in the build
Dependency assembly - Mono.Security.dll
Dependency assembly - System.Core.dll
Dependency assembly - System.Xml.dll
Dependency assembly - System.dll
Dependency assembly - mscorlib.dll
Dependency assembly - UnityEngine.UI.dll
Dependency assembly - UnityEngine.Networking.dll
Dependency assembly - UnityEngine.PlaymodeTestsRunner.dll
Dependency assembly - Assembly-CSharp.dll
4、结论:使用Mono.Xml代替System.Xml在APK安装包编译后,体积减小约400kb,建议使用Mono.Xml
Unity使用Mono.Xml代替System.Xml 测试的更多相关文章
- XML序列化 System.Xml.Serialization
一.定义元数据 XML序列化常用属性:XMLRoot,XMlType.XMLText.XMLEnum等 [Serializable] [XmlRoot] public class Product { ...
- XSLT可扩展样式表语言转换 System.Xml.Xsl、XslCompiledTransform类
XML文件 books.xml: <?xml version="1.0" encoding="utf-8" ?> <bookstore> ...
- Linq to XML - C#生成XML
1.System.Xml.XmlDocument XML file转成字符串 string path3 = @"C:\Users\test.xml"; XmlDocument ...
- Unity中用Mono插件解析xml文件
1.解压压缩包,把文件夹拖到脚本文件夹下 Mono是第三方基金会开发的开源的东西,通过Mono基础上开发的程序可以在各个系统下运行.开发语言是C#. 用插件解析比较高效,平台运行稳定.使用简单. Un ...
- Unity引擎下最快的Xml读取器:UnityRapidXml
近期发现无论是系统的System.Xml还是Mono.Xml,其实都有这样或者那样的问题,所以决定自己搞一个快一点的xml parse.以前在C++里用过rapidxml,这个确实是神一般的存在,速度 ...
- VS2012 Unit Test —— 我对IdleTest库动的大手术以及对Xml相关操作进行测试的方式
[1]我的IdleTest源码地址:http://idletest.codeplex.com/ [2]IdleTest改动说明:2013年10月份在保持原有功能的情况下对其动了较大的手术,首先将基本的 ...
- arm linux下编译库System.Net.Primitives.dll和System.Xml.XmlSerializer.dll
1.环境: /home/jello # uname -aLinux 3.10.0 #2 SMP Mon Mar 6 17:52:09 CST 2017 armv7l GNU/Linux 2.获取mo ...
- Unity 3D游戏-NPC对话系统With XML
用XML做的Unity NPC对话系统 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Create X ...
- TestNg之XMl形式实现多线程测试
为什么要使用多线程测试? 在实际测试中,为了节省测试时间,提高测试效率,在实际测试场景中经常会采用多线程的方式去执行,比如爬虫爬数据,多浏览器并行测试. 关于多线程并行测试 TestNG中实现多线程并 ...
随机推荐
- [原]docker 操作记录
开启新容器 docker run --name 容器名字 -ti[d] 镜像 初始化命令(需要是阻塞的) 额外参数 -v 本地目录:容器目录[:ro] 映射本地路径和容器路径(时区同步.数据库dock ...
- Uva 11076 Add Again (数论+组合数学)
题意:给你N个数,求把他们的全排列加和为多少 思路:对于这道题,假设数字k1在第一位,然后求出剩下N-1位的排列数num1,我们就可以知道k1在第一位时 排列有多少种为kind1, 同理,假设数字k2 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 18.集成OPC Client,及使用步骤
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
- HTML5技术实现Web图形图像处理——WebPhotoshop精简版
WebPhotoshop精简版是利用HTML5技术在Web上实现对图形图像的处理,构建易维护.易共享.易于拓展.实时性的Web图形图像处理平台. 精简版功能包括:图形绘制.图像处理.图像操作.完整版包 ...
- node.js 中模块的循环调用问题详解
首先,我们看一下图示代码,每一个注释其实代表一个 js 文件.所以下面其实是三个 js 文件 .第一个是我们要运行的 main 文件,后面两个是 a, b 文件. 从上面可以看书 a ,b 两个模 ...
- MetaProducts Offline Explorer使用简易教程
MetaProducts Offline Explorer使用简易教程 by windtrace 20170419 最近想下载一个网站上的内容打包成chm文件,以便离线浏览,webzip太长时间不更 ...
- redis intset(整数集合)
redis intset (整数集合) 概述 intset 是集合的底层实现结构之一 intset 集合只包含整数 intset 自升级 intset 整数集合是有序的 intset 结构 结构 // ...
- IIC模块TestBench的书写方法
今天在看黑金AX309FPGA开发板自带教程中的EEPROM那一章,考虑如何写其中iic_com模块的TestBench,难点在于1. 该模块存在一个inout型的端口信号:2. 时序较为复杂,不可能 ...
- bzoj2125 最短路
Description 给一个N个点M条边的连通无向图,满足每条边最多属于一个环,有Q组询问,每次询问两点之间的最短路径. Input 输入的第一行包含三个整数,分别表示N和M和Q 下接M行,每行三个 ...
- poj2104 Kth-Number
Description You are working for Macrohard company in data structures department. After failing your ...