XmlException:Text节点不能以此状态出现

时间:2011-12-24 16:38:35

标签: c# .net xml mono monodevelop

我有时会收到错误"文字节点不能出现在这种状态下#34;在我的应用程序中,在MonoDevelop中编辑xml并使用dotNET加载它。 这个错误真的很烦人,因为我必须将XML文件复制到Windows并尝试用VS修复它。

xml文件绝对正确,必须是带编码的东西。 在MonoDevelop中有没有快速解决方法?

当然,出现此错误会很有趣。

编辑(请求时的简短XML示例)

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

</Data>

3 个答案:

答案 0 :(得分:3)

我试图重现这个问题,我发现(考虑到我的人工复制),我所要做的就是编辑xaml的第一行

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

似乎,当编码发生变化时,文件中的<?xml节点之前只有一个空格。我使用TextWrangler打开文件并查看空间。只需在Xamarin Studio中编辑文件即可解决问题。在进一步调查中,看起来文件的标题中有2个BOM。

fe ff fe ff

我很想听听是否有人可以确定编码是如何改变的。

答案 1 :(得分:1)

我在仅使用monodevelop时发现此错误只有一种解决方法(还有其他方法可以通过使用其他编辑器来解决此问题):

  

使用其他编码(UTF-16)保存文件。这不会永久解决它,如果再次编辑文件,它可能会再次出现。

答案 2 :(得分:1)

我认为问题是字节顺序标记显示为前2个字节,而不期望字节顺序标记的解析器会将其解释为短文本节点。没有BOM的重新编码应该修复它。