c# - XML 文档中存在错误 (1, 41)

标签 c# xml-serialization

当我对 xml 进行反序列化时,我收到“XML 文档 (1, 41) 中存在错误”。 .任何人都可以告诉我问题是什么。

 public static T DeserializeFromXml<T>(string xml)
        {
            T result;
            XmlSerializer ser = new XmlSerializer(typeof(T));
            using (TextReader tr = new StringReader(xml))
            {
                result = (T)ser.Deserialize(tr);
            }
            return result;
        }

我用这个函数来做。

<?xml version='1.0' encoding='utf-16'?>
<Message>
<FirstName>Hunt</FirstName>
<LastName>DAvid</LastName>
</Message>

最佳答案

确保您的 Message 类如下所示:

[Serializable, XmlRoot("Message")]
public class Message
{
    public string FirstName { get; set; }

    public string LastName { get; set; }
}

这对我来说很好:

string xml = File.ReadAllText("c:\\Message.xml");
var result = DeserializeFromXml<Message>(xml);

MSDN, XmlRoot.ElementName :

The name of the XML root element that is generated and recognized in an XML-document instance. The default is the name of the serialized class.

所以你的类名可能不是Message,这就是反序列化器无法使用默认行为找到它的原因。

关于c# - XML 文档中存在错误 (1, 41),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9821682/

相关文章:

c# - 征求意见 c# Webplayer

c# - 将 JavaScript 自定义类型从 InvokeScript 返回到 C#,并保留自定义类型结构

c# - XML 序列化 DateTime 的默认格式

c# - 动态更改 connString

c# - 无法序列化我的 `ObservableDictionary<TKey,TValue>` 类

java - 如何通过流读取文件并同时流写入输出来更新 XML 文档

c# - 提高 DataTable.ReadXml 性能

c# - MSMQ为什么不发送空格字符?

c# - Xml 序列化具有自定义标签名称的不同类的数组

C#反序列化元素映射