如何反序列化以下xml?

时间:2012-09-04 12:15:47

标签: c# .net xml serialization

我想在一个类中使用特定属性反序列化以下xml:

<test1>
    <field1>0</field1>
    <field2>1</field2>
    <field3>2</field3>
</test1>
<test2>
    <field4>0</field4>
    <field5>1</field5>
    <field6>2</field6>
</test2>
<test3>
    <field7>0</field7>
    <field8>1</field8>
    <field9>2</field9>
</test3>

我写的课程如下:

    [Serializable]
    public class Result
    {
        [XmlElement("test1")]
        public Test1 T1{ get; set; }

        [XmlElement("test2")]
        public Test2 T2 { get; set; }

        [XmlElement("test3")]
        public Test3 T3 { get; set; }

    }

    [Serializable]
    public class Test1
    {
        [XmlElement("Field1")]
        public Test1 Field1{ get; set; }

        [XmlElement("Field2")]
        public Test2 Field2{ get; set; }

        [XmlElement("Field3")]
        public Test3 Field3 { get; set; }

    }
....

不幸的是,我在反序列化时遇到以下错误:

  

输入xmlns =''不是预期的。

感谢您的帮助。

亲切的问候,亲

1 个答案:

答案 0 :(得分:1)

在XML周围添加<Result>...</Result>元素。如果它们丢失了,请添加并附加它们。如果存在不同的根元素,请将[XmlRoot("name")]元素添加到Result类。

解决XML序列化问题的最简单方法是填充对象,然后使用XmlSerializer.Serialize()对其进行序列化,并查看生成的XML。