C# XmlException:此状态下无法显示文本节点。第1行,位置1

C# XmlException:此状态下无法显示文本节点。第1行,位置1,c#,xml,encoding,utf-8,C#,Xml,Encoding,Utf 8,在我开始讨论这个问题之前,我知道还有一个问题听起来和我的完全一样。但是,我尝试过这个解决方案(使用记事本++将xml文件编码为UTF-8(没有BOM)),但它不起作用 XmlDocument namesDoc = new XmlDocument(); XmlDocument factionsDoc = new XmlDocument(); namesDoc.LoadXml(Application.persistentDataPath + "/names.xml"); factionsDoc.Lo

在我开始讨论这个问题之前,我知道还有一个问题听起来和我的完全一样。但是,我尝试过这个解决方案(使用记事本++将xml文件编码为UTF-8(没有BOM)),但它不起作用

XmlDocument namesDoc = new XmlDocument();
XmlDocument factionsDoc = new XmlDocument();
namesDoc.LoadXml(Application.persistentDataPath + "/names.xml");
factionsDoc.LoadXml(Application.persistentDataPath + "/factions.xml");
以上是我遇到问题的代码。我不确定是什么问题

<?xml version="1.0"  encoding="UTF-8"?>
<factions>
        <major id="0">
...

...
上面是XML文件的一部分(它的开头-names.XML也是相同的,只是它没有'id'属性)。文件均以UTF-8编码-在最新的notepad++版本中,没有“编码UTF-8而不带BOM”选项。afaik UTF-8与不带BOM的UTF-8相同


有人知道原因是什么吗?还是我做错了什么/忘记了什么

您收到一个错误,因为
.LoadXml()
方法需要一个包含XML数据的字符串参数,而不是XML文件的位置。如果要加载XML文件,则需要使用
.load()
方法,而不是
.LoadXml()
方法。

问题可能是我最初通过记事本将其创建为.txt文件,然后转换为XML?\。对于使用什么软件来创建XML文件,您有什么建议吗?(我假设一旦创建了它,我就可以在记事本++中自由编辑它?就像我以前在其他地方做的那样)它会这么简单吗?难道它不会抱怨主要的空白吗?当你发布这篇文章时,我已经自己解决了,哈哈。谢谢你@托马拉克:是的,哈哈。也没有前导空格。