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);
            }

        }
    }

}
  1. 结果正确: 
  2. 安装包大小: 
  3. 编译日志可以观测到没有引用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);
        }

    }

}
  1. 结果正确:
  2. 安装包大小:
  3. 编译日志:可以观测到引用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

时间: 2024-08-24 22:47:10

Unity使用Mono.Xml代替System.Xml 测试的相关文章

System.Xml 命名空间

XML 已经成为一种流行的数据格式,其原因很多,对于大多数人来说,这是一种很方便表示数据的格式,文件有可读性.程序员的处理文件既有非结构化的,即不遵循一种模式,或者是结构化的,即数据符合 XSD 架构定义的约定:还希望方便地用 XPath 查询数据,即,为了处理一种新的数据格式而编写自定义的解析程序,很少需要,文件可以在不同的 XML 格式之间快速转换,用强大的 XSLT 语言转换数据. System.Xml 命名空间处理 XML 文件的类所有的方法很多,有这里描述的,但不止这些,我们将学习的方

Unity中用Mono插件解析xml文件

1.解压压缩包,把文件夹拖到脚本文件夹下 Mono是第三方基金会开发的开源的东西,通过Mono基础上开发的程序可以在各个系统下运行.开发语言是C#. 用插件解析比较高效,平台运行稳定.使用简单. Unity安装路径中可以找到Mono压缩包 2.新建脚本XmlTest using UnityEngine; using System.Collections; using Mono.Xml; using System.Security; public class XmlTest : MonoBehav

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.获取mono源码 wget download.mono-project.com/sources/mono/mono-5.4.0.167.tar.bz2 3.解压 tar xvf mono-5.4.0.167.tar.bz2 4.切换目录 cd mono-5.4.0.167 5.切换到System.Xml.X

System.Xml.XmlException: “=”是意外的标记。标记应为“;”

使用.NET XmlDocument对象LoadXml(string xml)行为从指定字符串加载XML过程中报了一个错: “=”是意外的标记.标记应为“;”. 第 1 行,位置 567. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.Xml.XmlException: “=”是意外的标记.标记应为“;”. 第 1 行,位置 567. 源错误: 行 60: else if (menu

WP8 中使用HTML Agility Pack与友盟分享SDK遇到的 System.Xml.XPath加载问题

今晚在尝试使用友盟最新的社交分享SDK时,按照官方Demo,并未做多少多少改动,就是去除了对微信.脸书和推特的分享.然后运行之后就一直报错 : {System.IO.FileLoadException: Could not load file or assembly 'System.Xml.XPath, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. Th

SIlverlight加载视图出现异常 System.Xml.XmlException [Xml_CannotFindFileInXapPackage] 参数: ServiceReferences.ClientConfig

Silverlight的设计视图出现错误,但是运行程序没问题. 错误信息: System.Xml.XmlException[Xml_CannotFindFileInXapPackage]参数: ServiceReferences.ClientConfig调试资源字符串不可用.键和参数通常会提供足够的信息来诊断问题.请参见 http://go.microsoft.com/fwlink/?linkid=106663&Version=4.0.50917.0&File=System.Xml.dll

xml规范及xml解析

http://www.cnblogs.com/wang-meng/p/5374498.html 1,XML基础介绍 xml的概念: XML 指可扩展标记语言(EXtensible Markup Language),也是一种标记语言,很类似 HTML.           它的设计宗旨是传输数据,而非显示数据它;标签没有被预定义,需要自行定义标签. xml的作用: XML 是各种应用程序之间进行数据传输的最常用的工具,并且在信息存储和描述领域变得越来越流行.简单的说,我们在开发中使用XML主要有以

利用反射与dom4j读取javabean生成对应XML和读取XML得到对应的javabean对象集合

转自:http://blog.csdn.net/zhao19861029/article/details/8473245 首先实现生成对应的JAVAbean的XML文件方法 /** * DMO4J写入XML * @param obj 泛型对象 * @param entityPropertys 泛型对象的List集合 * @param Encode XML自定义编码类型(推荐使用GBK) * @param XMLPathAndName XML文件的路径及文件名 */ public void wri

XML解析与XML拼接

2015年了. 1.XML解析 这边是用的dom4j方式解析. 解析的XML如下: <?xml version="1.0" encoding="UTF-8"?> <DBSET> <R> <C N="TASKID">10001</C> <!-- TASKID --> <C N="TYPE">D</C><!-- 查询类型(D/U)