XML 序列化程序错误需要帮助

发布于 2024-10-17 12:29:58 字数 258 浏览 4 评论 0原文

这是我的代码

// Read the data from the file 
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData)); 
data = (HighScoreData)serializer.Deserialize(stream);

,我目前正在为我的游戏保存高分。但出现错误“xml 文档 (0, 0) 中存在错误。 愿意提供帮助或启发吗?

here is my code

// Read the data from the file 
XmlSerializer serializer = new XmlSerializer(typeof(HighScoreData)); 
data = (HighScoreData)serializer.Deserialize(stream);

im currently doing a saving highscore for my game. but it get an error of "there is an error in xml document (0, 0).
care to help or enlighten?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风柔一江水 2024-10-24 12:29:58

我以前遇到过这个问题,文件开头有一个字节顺序标记。在十六进制编辑器中检查 XML 文件,看看开头是否有三个字符。您可以简单地使用原始 xml 执行类似以下操作

if (xml.StartsWith(ByteOrderMarkUtf8)) 
{     
   xml = xml.Remove(0, ByteOrderMarkUtf8.Length); 
} 

,然后将其读入流中

,或者您可以在创建流时执行类似的操作,

byte[] bytes = Encoding.UTF8.GetBytes(xml); 
MemoryStream stream = new MemoryStream(bytes);

希望这会有所帮助

i have had this problem before and a byte order mark was present at the beginning of the file. Check your XML file in a hex editor and see if there are three characters at the beginning. You could simply do something like the following with your raw xml

if (xml.StartsWith(ByteOrderMarkUtf8)) 
{     
   xml = xml.Remove(0, ByteOrderMarkUtf8.Length); 
} 

then read that into the stream

or you could do something like this when creating your stream

byte[] bytes = Encoding.UTF8.GetBytes(xml); 
MemoryStream stream = new MemoryStream(bytes);

hopefully that helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文