Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET父/子XML反序列化帮助_.net_Xml Serialization - Fatal编程技术网

.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> <

我有一个包含父/子引用的XML文档,我想将其反序列化为.NET对象,但无法这样做。以下是XML片段:

<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进行反序列化?