.NET父/子XML反序列化帮助
我有一个包含父/子引用的XML文档,我想将其反序列化为.NET对象,但无法这样做。以下是XML片段:.NET父/子XML反序列化帮助,.net,xml-serialization,.net,Xml Serialization,我有一个包含父/子引用的XML文档,我想将其反序列化为.NET对象,但无法这样做。以下是XML片段: <family> <parents> <parent id="1" name="Sam" /> <parent id="2" name="Beth" /> <parent id="3" name="Harry" /> </parents> <children> <
<family>
<parents>
<parent id="1" name="Sam" />
<parent id="2" name="Beth" />
<parent id="3" name="Harry" />
</parents>
<children>
<child id="100" name="Tom">
<parent id="1">
</child>
<child id="200" name="Chris">
<parent id="2">
</child>
</children>
</family>
我希望能够使用.NET类将所有父标记反序列化到Parents集合中
class Child
{
string Name;
List<Parent> Parents;
}
class Parent
{
string Name;
int Id;
}
有什么想法吗?我在XmlSerializer类上尝试了反序列化方法,但它只拾取id属性,而不将其与父节点集合关联。感谢您的帮助。谢谢 这里提出了一个类似的问题: 基本上,因为您声明XML是分层的,所以需要将子项放入相应的父项中。尝试使用类似以下内容:
<family>
<parents>
<parent id="1" name="Sam" >
<children>
<child id="100" name="Tom">
<parent id="1">
</child>
</children>
</parent>
<parent id="2" name="Beth" />
<children>
<child id="200" name="Chris">
<parent id="2">
</child>
</children>
<parent id="3" name="Harry" />
</parents>
</family>
这样子节点就位于父节点之下。感谢您的快速回复,但不幸的是,不允许我更改xml模式。我必须使用给定的格式.Hmmm。由于这个限制,我不确定默认的反序列化是否可以工作。作为一种解决方法,您可以使用xslt将XML转换为我发布的模式,然后对转换后的XML进行反序列化?