Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# XmlException:文本节点不能在此状态下出现_C#_.net_Xml_Mono_Monodevelop - Fatal编程技术网

C# XmlException:文本节点不能在此状态下出现

C# XmlException:文本节点不能在此状态下出现,c#,.net,xml,mono,monodevelop,C#,.net,Xml,Mono,Monodevelop,在MonoDevelop中编辑xml并用dotNET加载后,我有时会发现错误文本节点无法在我的应用程序中以这种状态出现。 这个错误真的很烦人,因为我必须将XML文件复制到windows并尝试用VS修复它 xml文件绝对正确,必须使用编码。 在MonoDevelop中有没有快速的解决方法 当然,出现这个错误的原因也很有趣 根据请求编辑简短的XML示例 在使用monodevelop时,我发现只有一种解决此错误的方法。只有使用其他编辑器才能解决此问题: 使用另一种编码UTF-16保存文件。这不会永久解

在MonoDevelop中编辑xml并用dotNET加载后,我有时会发现错误文本节点无法在我的应用程序中以这种状态出现。 这个错误真的很烦人,因为我必须将XML文件复制到windows并尝试用VS修复它

xml文件绝对正确,必须使用编码。 在MonoDevelop中有没有快速的解决方法

当然,出现这个错误的原因也很有趣

根据请求编辑简短的XML示例
在使用monodevelop时,我发现只有一种解决此错误的方法。只有使用其他编辑器才能解决此问题:

使用另一种编码UTF-16保存文件。这不会永久解决问题,如果再次编辑文件,可能会再次发生


我认为问题在于字节顺序标记显示为前2个字节,而不需要字节顺序标记的解析器将其解释为短文本节点。在没有BOM的情况下重新编码应该可以解决这个问题。

我正试图重现这个问题,我发现,鉴于我的人为重现,我所要做的就是编辑xaml的第一行

<?xml version="1.0" encoding="UTF-8"?>

如果有人能指出编码是如何改变的,我很乐意听到回音。

发布一个显示问题的XML示例。@Oded添加了一个导致错误的XML示例,正如我告诉你的,它绝对正确。MododeDevelop将文件保存为什么编码?只是一个想法-会不会因为linux和windows中的不同行结尾而发生这种情况?考虑到您提供的示例,我真的不认为这是一个常规的编码错误。是的@felix K您是对的,我使用另一个xml编辑器解决了我的错误。由于我正在为Xamarin使用VS,我不再面临这个问题。他们真的没修好吗-/
<?xml version="1.0" encoding="UTF-8"?>
fe ff fe ff