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的有时候也能解决,但当你改完后,还不能解决的时候,上面的方法对你也许有帮助
Unity3d XmlException: Text node cannot appear in this state的方案的更多相关文章
- Unity3D:Text在Inspector面板中中无法显示,需转换成UTF-8格式
环境:Win10 读取text内容后unity报错:Input string was not in the correct format 同时在Inspector面板中无法预览Text文本内容 随后发 ...
- Node 出现 uncaughtException 之后的优雅退出方案
Node 的异步特性是它最大的魅力,但是在带来便利的同时也带来了不少麻烦和坑,错误捕获就是一个.由于 Node 的异步特性,导致我们无法使用 try/catch 来捕获回调函数中的异常,例如: try ...
- Unity3D手游开发日记(1) - 移动平台实时阴影方案
阴影这个东西,说来就话长了,很多年前人们就开始研究出各种阴影技术,但都存在各种瑕疵和问题,直到近几年出现了PSSM,也就是CE3的CSM,阴影技术才算有个比较完美的解决方案.Unity自带的实时阴影, ...
- 【HTML DOM】Node.nodeValue的用法
目录结构: // contents structure [-] 语法 注意 详述 实例 参考文章 Note.noteValue 属性返回或设置当前属性的值. 语法 value = node.nodeV ...
- 跟随 Web 标准探究DOM -- Node 与 Element 的遍历
写在前面 这篇没有什么 WebKit 代码的分析,因为……没啥好分析的,在实现里无非就是树的(先序DFS)遍历而已,囧哈哈哈……在WebCore/dom/Node.h , WebCore/dom/Co ...
- 继续node爬虫 — 百行代码自制自动AC机器人日解千题攻占HDOJ
前言 不说话,先猛戳 Ranklist 看我排名. 这是用 node 自动刷题大概半天的 "战绩",本文就来为大家简单讲解下如何用 node 做一个 "自动AC机&quo ...
- DOM中的node与element的区别
先看document的两个常见method. document.createTextNode Constructor: Text document.createElement Constructor: ...
- csharp: using HtmlAgilityPack and ScrapySharp reading Url find text
https://github.com/exaphaser/ScrapySharp https://github.com/zzzprojects/html-agility-pack https://gi ...
- Practical Node.js (2018版) 第7章:Boosting Node.js and Mongoose
参考:博客 https://www.cnblogs.com/chentianwei/p/10268346.html 参考: mongoose官网(https://mongoosejs.com/docs ...
随机推荐
- 开源CMS系统Moodle对比中国本土化开源在线教育平台EduSoho
这段时间研究了一下著名的开源课程管理系统Moodle,也了解了一下目前国内比较火的在线教育平台EduSoho,发现二者有诸多相似之处,但优势各异.接下来就简单对着两个平台做一下对比. 首先来说一下Ed ...
- Codeforces 980F Cactus to Tree 仙人掌 Tarjan 树形dp 单调队列
原文链接https://www.cnblogs.com/zhouzhendong/p/CF980F.html 题目传送门 - CF980F 题意 给定一个 $n$ 个节点 $m$ 条长为 $1$ 的边 ...
- JDK5的新特性之可变参数&Arrays.asList()方法
[代码] package com.hxl; import java.util.Arrays; import java.util.List; public class Test { public sta ...
- B-number 数位dp
求有 13且能被13整除的个数 显然已目前的四个状态无法对问题进行完全解答了 关于能否被13整除 有必要加一个mod状态 当pre为2的时候说明已经存在过13了(直接继承即可) 当pre为1说 ...
- 2018-03-11 20165235祁瑛《Java程序设计》第二周学习总结
2018-03-11 20165235祁瑛<Java程序设计>第二周学习总结 教材学习内容总结 第二章要点: 在这一章中我学到了很多东西: (1)布尔类型boolean,布尔类型的赋值只能 ...
- jstl select <c:if test下拉菜单不能被选中!
关于select下拉菜单中出现中文时,因为编码的问题,不能用“==”来进行判断,必须要用“eq”,而且中文带上单引号: <select id="operateType" na ...
- 整合django和bootstrap框架
环境: python版本:2.7.8 django版本:1.7.1 bootstrap版本:3.3.0 首先github上面有两个开源的项目用来整合django和bootstrap. https:// ...
- 工作记录之 [ python请求url ] v s [ java请求url ]
背景: 模拟浏览器访问web,发送https请求url,为了实验需求需要获取ipv4数据包 由于不做后续的内容整理(有内部平台分析),故只要写几行代码请求发送https请求url列表中的url即可 开 ...
- HDU 4185 Oil Skimming 【最大匹配】
<题目链接> 题目大意: 给你一张图,图中有 '*' , '.' 两点,现在每次覆盖相邻的两个 '#' ,问最多能够覆盖几次. 解题分析: 无向图二分匹配的模板题,每个'#'点与周围四个方 ...
- Apache系列:Apache的全局配置
配置文件组成: 整个配置文件由3段组成: (1)全局配置:对主服务器或虚拟机都有效,且有些功能是服务器自身工作属性: (2)主服务器:主站属性: (3)虚拟主机:虚拟主机及属性定义 注:第二段和第三段 ...