c#-XmlException文本节点无法在此状态下出现(布尔值notWhiteSpace)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-XmlException文本节点无法在此状态下出现(布尔值notWhiteSpace),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2419字,纯文字阅读大概需要4分钟。
内容图文
![c#-XmlException文本节点无法在此状态下出现(布尔值notWhiteSpace)](/upload/InfoBanner/zyjiaocheng/661/9f7bfe9743b946a6b236ffc7bc83689b.jpg)
因此,当我尝试从文件创建XDocument时出现此错误,但问题是它仅在20%的时间内发生,但是我的程序需要调用此函数,该函数每20秒创建一次XDocument,因此,修复此问题至关重要.
这是我的功能的一个小片段,从文件加载到XDocument
//Read all patterns
DirectoryInfo directory = new DirectoryInfo ("Assets/_Scripts/Items/Orb Patterns");
orbPatterns = directory.GetFiles ().Cast<FileInfo> ().ToList ();
//Pick a random pattern
XDocument xmlDoc = XDocument.Load (orbPatterns [Random.Range (0, orbPatterns.Count - 1)].FullName);
该错误发生在XDocument.Load()行上.
实际抛出的异常是
XmlException: Text node cannot appear in this state.
file:///Assets/_Scripts/Items/Orb Patterns/pattern1.xml.meta Line 1, position 1.
Mono.Xml2.XmlTextReader.ReadText (Boolean notWhitespace)
Mono.Xml2.XmlTextReader.ReadContent ()
Mono.Xml2.XmlTextReader.Read ()
System.Xml.XmlTextReader.Read ()
Mono.Xml.XmlFilterReader.Read ()
System.Xml.Linq.XDocument.ReadContent (System.Xml.XmlReader reader, LoadOptions options)
System.Xml.Linq.XDocument.LoadCore (System.Xml.XmlReader reader, LoadOptions options)
System.Xml.Linq.XDocument.Load (System.String uri, LoadOptions options)
System.Xml.Linq.XDocument.Load (System.String uri)
就像我说的,它大约80%的时间都可以工作,其他20%的时间会抛出异常.但是,这仅意味着该函数不会在当前迭代中运行. 20秒后,它将重试,并且通常可以正常工作.
我的XML文档应该很好,这是一个示例
<?xml version="1.0" encoding="UTF-8"?>
<table>
<cell column="1" row="1">Red</cell>
<cell column="1" row="2">Red</cell>
<cell column="1" row="3">Red</cell>
<cell column="1" row="4">Red</cell>
<cell column="2" row="1">Red</cell>
<cell column="2" row="2">Blue</cell>
<cell column="2" row="3">Blue</cell>
<cell column="2" row="4">Red</cell>
<cell column="3" row="1">Red</cell>
<cell column="3" row="2">Multi</cell>
<cell column="3" row="3">Multi</cell>
<cell column="3" row="4">Red</cell>
<cell column="4" row="1">Red</cell>
<cell column="4" row="2">Blue</cell>
<cell column="4" row="3">Blue</cell>
<cell column="4" row="4">Red</cell>
</table>
我读过类似的问题,它们似乎与编码有关,并且不使用BOM对其进行编码,我已经尝试了所有这些方法,但问题仍然存在.我认为,如果它将在大多数时间运行,那么编码应该不是问题.有任何想法吗?
解决方法:
我认为可能是XML编码类型(这种情况是UTF-8)引起了错误.解决方案是将文件转换为ascii(删除BOM),或在没有BOM的情况下以UTF-8编码.
看一下这个问题http://answers.unity3d.com/questions/10904/xmlexception-text-node-canot-appear-in-this-state.html,它要求您提供相同问题的帮助.
内容总结
以上是互联网集市为您收集整理的c#-XmlException文本节点无法在此状态下出现(布尔值notWhiteSpace)全部内容,希望文章能够帮你解决c#-XmlException文本节点无法在此状态下出现(布尔值notWhiteSpace)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。