Unity3d XmlException: Text node cannot appear in this state的方案
这个问题是utf-8编码的问题,如果是utf-8+bom那么就会出现这种问题,如果是单纯的utf-8就没有这种问题(当然如果你把他完全变成ansi,那也行)
我在读写xml的时候遇到这个问题。查了好久在老外的一个网上看到了解决的方法。还有我自己总结的一些方法。
public bool LoadXml(string xmlFile)
{
if (xmlDocument == null)
{
throw new ArgumentNullException("xmlDocument");
}
if (xmlFile == null || xmlFile.Length == 0)
{
throw new ArgumentNullException("xmlFile");
}
// Debug.Log(xmlFile);
// TextReader tr = new StringReader(xmlFile);
// xmlDocument.Load(tr);
System.IO.StringReader stringReader = new System.IO.StringReader(xmlFile);
stringReader.Read(); // 跳过 BOM
System.Xml.XmlReader reader = System.Xml.XmlReader.Create(stringReader);
xmlDocument.LoadXml(stringReader.ReadToEnd());
return true;
}
这个是bom的解释网上很多,我不解释了http://www.cnblogs.com/zhongru_tu/archive/2008/04/11/1147792.html
这是一个自己写的导入xml的方法,注释的部分是我一开始使用的方法,没有注释的部分是我修改过的。这样你在读取xml的时候就可以跳过bom了.
如果你不需要发布为网页形式,那么还有一种方法也可以起到这样的效果,那就是重新写一下xml,彻底改变它的编码方式让其不带bom
代码如下:
Encoding utf8NoBom = new UTF8Encoding(false);
string fileString = File.ReadAllText(writeUrl,utf8NoBom);
File.WriteAllText(writeUrl,fileString,utf8NoBom);
注意你需要使用几个命名空间
using System.Xml;
using System.Text;
using System;
using System.IO;
当然有时候你会发现unity虽然你写了命名空间但是有些类你还是找不到,那么你要到网上下专门的动态库(dll)放到Plugins文件夹下,当然有些读写本地文件的类在发布为网页形式的时候你是不能够使用的。
最后还有一点,你使用了上面的方法以后一定记住把你的xml文件的编码改为utf-8+bom这种格式,因为我们这个是对bom格式的读取。
还有一些其他的小方法你用其他编辑软件改为utf-8不带bom的有时候也能解决,但当你改完后,还不能解决的时候,上面的方法对你也许有帮助
转载于:https://www.cnblogs.com/lancidie/p/9472704.html
Unity3d XmlException: Text node cannot appear in this state的方案相关推荐
- 【Unity3D修改Text创建时的默认字体】
Unity3D修改Text创建时的默认字体 首先定位Text创建时的字体加载逻辑 我使用的是Unity2019.3.2+win10系统 定位到Text的脚本在 Unity\Editor\Data\Re ...
- Unity3D中Text实现首行缩进的办法
我最近在我的Unity3D软件中出现个莫名其妙的问题, 我解决问题之后,觉得对各位有帮助,方便Unity3D的初学者.UGUI的Text首行缩进方法 1.复制代码<color=#FFFFFF00 ...
- unity3d曲线text文本
测试.png using System; using System.Collections.Generic;namespace UnityEngine.UI.Extensions {/// <s ...
- node.js 多异步之间的协作方案
<深入浅出node.js> P77 学习 ///用于处理多个事件对应一个侦听器的情况var count = 0; var results = {}; var done = function ...
- React的列表渲染
//9. 列表渲染class List extends React.Component{state = {list:[1,2,3,4,5],list2:[{id:1,text:'java'},{id: ...
- jq 给节点node加事件_JavaScript 原生对象、属性、方法、事件、事件参数
/*** 事件参考 https://developer.mozilla.org/zh-CN/docs/Web/Events* Event <- UIEvent <- MouseEvent* ...
- sublime text 食用笔记
下载 & 安装 下载地址 Platform: windows Version: build 3200 Link: sublime_text_x64_portable.zip 安装 解压文件 ( ...
- webpack+es6+node+react初实践及总结
之前对于react的认识只存在与听说,说他有啥virtual DOM,很好的组件化,效率很高之类的,,不过一直没有学习,昨天闲着无聊就开始学习react.发现jsx的写法真是666啊,由于是刚开始学习 ...
- sublime text 3 , 3143
SUBLIME TEXT 3 : 3143 September 2017 Update. All other keys were invalidated due to being shared. Cu ...
最新文章
- leetcode-7-整数翻转
- 牛客 - 「土」巨石滚滚(贪心)
- mysql记录相互关系查询_MySQL关系表查询两个表的数据
- 前端学习(489):文本格式化
- mysql 模糊查询用法_mysql进阶(六)模糊查询的四种用法介绍
- Qt文档阅读笔记-Qt Quick Examples - Text 初步解析
- 滚屏加载--无刷新动态加载数据技术的应用
- vue jsx webpack报错_从零开始,使用webpack高效搭建react工作流
- 关于spring集成junit4测试步骤
- 佳能Canon PIXMA MP568 一体机驱动
- TMS320F280049C 学习笔记4 Led_ex1_blinky 初始化函数及系统时钟
- 手机连接电脑热点后,无法上网
- network 网站流量
- android m是什么版本号,Android m是什么版本
- ArithmeticException算数异常
- python数字图像处理以及绘图
- 牛逼的Python库MoviePy!利用Python自动剪辑tiktok视频!
- 微信小程序开发入门教程(八)
- OpenCV中的图像变换——傅里叶变换
- 抢占下一代互联网战略制高点
热门文章
- 实战SSM_O2O商铺_37【商品】商品列表之View层的实现
- java品酒会,我学 rxjava 2(3)- 热发射
- Redis 数据类型之(底层解析)
- HashMap 的设置值,取值,遍历等
- debian安装python3_debian上安装python3.6
- python序列类型有_Python序列类型
- pc双网卡实现路由转发_route命令如何使用?如何利用route命令实现内外网切换?...
- 2021-05-08 docker save与docker export的镜像区别
- php回调函数如何执行顺序,PHP回调函数调用方式
- 利用openCV中的cvCanny函数检测人脸的边缘