Справка по десериализации родительского и дочернего XML .NET - PullRequest
0 голосов
/ 28 июля 2010

У меня есть документ 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>

Я хочу иметь возможность десериализовать все родительские теги в коллекцию Parents, используя класс .NET как таковой.

class Child
{
  string Name;
  List<Parent> Parents;
}

class Parent
{
  string Name;
  int Id;
}

Есть идеи? Я попробовал метод Deserialize в классе XmlSerializer, но он только получает атрибут id, но не связывает его с коллекцией родительских узлов. Любая помощь приветствуется. Спасибо!

1 Ответ

0 голосов
/ 28 июля 2010

Здесь задан похожий вопрос:

Десериализация XML для объектов в C #

По сути, поскольку вы указали, что 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>

Таким образом, дети находятся «под» родительскими узлами.

...