XML 到对象反序列化

瓦迪姆

我正在尝试对以下 XML 进行反序列化

    -<Tables>


     -<StaticGroups>


        -<StaticGroup Name="111">


            -<Table>

                <TableName>Table1 Name</TableName>

                <TableTag>Table1 Tag</TableTag>

            </Table>
            -<StaticGroup Name="111.1">


                -<Table>

                    <TableName>Table1.1 Name</TableName>

                    <TableTag>Table1.1 Tag</TableTag>

                </Table>
            </StaticGroup>
        </StaticGroup>
    </StaticGroups>    
</Tables>

由于某种原因,嵌套的 StaticGroup Name="111.1" 不会被反序列化。

课程如下

[XmlRoot("Tables")]
    public class TablesXML
    {
        public TablesXML()
        {
            StaticTablesGroups = new List<StaticTablesGroup>();
        }


        [XmlArray("StaticGroups")]
        [XmlArrayItem("StaticGroup", typeof(StaticTablesGroup))]
        public List<StaticTablesGroup> StaticTablesGroups { get; set; }

    }

    public class StaticTablesGroup
    {
        public StaticTablesGroup()
        {
            GroupTables = new List<GroupTable>();
            StaticTablesGroups = new List<StaticTablesGroup>();
        }

        [XmlAttribute("Name")]
        public string Name { get; set; }

        //[XmlArray("StaticGroup")]
        [XmlElement("Table", typeof(GroupTable))]
        public List<GroupTable> GroupTables { get; set; }


        [XmlElement("StaticGroup")]
        public List<StaticTablesGroup> StaticTablesGroups { get; set; }   
    }
    public class GroupTable
    {

        [XmlElement("TableName")]
        public string Name { get; set; }
        [XmlElement("TableTag")]
        public string Tag { get; set; }


    }

第一个 Name = "111" 的 StaticGroup 反序列化成功,但 Name = "111.1" 的嵌套 StaticGroup 没有反序列化

我究竟做错了什么。请帮忙

毫米8

如果您的问题与反序列化有关,那么发布您的反序列化代码可能是一个想法,您不觉得吗?

无论如何,这对我来说很好用:

string xml = "<Tables><StaticGroups><StaticGroup Name=\"111\"><Table><TableName>Table1 Name</TableName><TableTag>Table1 Tag</TableTag></Table><StaticGroup Name=\"111.1\"><Table><TableName>Table1.1 Name</TableName><TableTag>Table1.1 Tag</TableTag></Table></StaticGroup></StaticGroup></StaticGroups></Tables>";
XmlSerializer serializer = new XmlSerializer(typeof(TablesXML));
TablesXML tablesXml;
using (TextReader reader = new StringReader(xml))
{
    tablesXml = (TablesXML)serializer.Deserialize(reader);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章