C# XmlException文本节点不能在此状态下出现(布尔notWhiteSpace)
因此,当我尝试从文件创建XDocument时,会出现此错误,但问题是,它只在大约20%的时间内出现,但我的程序需要调用此函数,该函数每20秒创建一次XDocument,因此这是修复此错误的关键 这是我的函数从文件加载到XDocument的一个小片段C# XmlException文本节点不能在此状态下出现(布尔notWhiteSpace),c#,xml,unity3d,mono,linq-to-xml,C#,Xml,Unity3d,Mono,Linq To Xml,因此,当我尝试从文件创建XDocument时,会出现此错误,但问题是,它只在大约20%的时间内出现,但我的程序需要调用此函数,该函数每20秒创建一次XDocument,因此这是修复此错误的关键 这是我的函数从文件加载到XDocument的一个小片段 //Read all patterns DirectoryInfo directory = new DirectoryInfo ("Assets/_Scripts/Items/Orb Patterns"); orbPatter
//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);
正如我所说的,它在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编码
看一看这个问题,这个问题同样需要帮助。我已经读过那篇文章了。我在问题的最后说,我尝试在没有BOM的情况下对其进行编码,但仍然得到相同的结果。我也试过UTF-16。
<?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>