gpt4 book ai didi

c# - XML 到对象反序列化

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:10 26 4
gpt4 key购买 nike

我正在尝试反序列化以下 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"由于某种原因没有被反序列化。

类(class)如下

[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 没有反序列化

我做错了什么。请帮忙

最佳答案

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

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

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);
}

关于c# - XML 到对象反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43484673/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com