Реструктуризация XML-документа - PullRequest
0 голосов
/ 17 мая 2010

вот моя структура XML-документа,

<worldpatentdata>
    <patent-family>
        <exchange-documents>......</exchange-documents>
        <exchange-documents>......</exchange-documents>
        <exchange-documents>......</exchange-documents>
        <familymember>.....</familymember>
        <exchange-documents>......</exchange-documents>
        <exchange-documents>......</exchange-documents>
        <familymember>.....</familymember>
        <exchange-documents>......</exchange-documents>
        <exchange-documents>......</exchange-documents>
        <familymember>.....</familymember>
    </patent-family>
</worldpatentdata>

В приведенной выше структуре xml все элементы <exchange-documents> являются дочерними узлами элемента <patent-family>. Я хочу, чтобы эти <exchange-documents> элементы были дочерними для элемента <family-member>, чтобы xml имел следующую структуру:

<worldpatentdata>
    <patent-family>
        <familymember>.....
            <exchange-documents>......</exchange-documents>
            <exchange-documents>......</exchange-documents>
            <exchange-documents>......</exchange-documents>
        </familymember>
        <familymember>.....
            <exchange-documents>......</exchange-documents>
            <exchange-documents>......</exchange-documents>
        </familymember>
        <familymember>.....
            <exchange-documents>......</exchange-documents>
            <exchange-documents>......</exchange-documents>
        </familymember>
    </patent-family>
</worldpatentdata>

Кто-нибудь может мне помочь в этом? спасибо

Ответы [ 2 ]

0 голосов
/ 17 мая 2010

Над головой, один из способов может быть:

  1. Используйте XDocument для загрузки xml и создайте tempXDocument.
  2. foreach (XElement... через элементы и добавьте в XmlNodeList элементы, которые <exchange-documents>
  3. Добавить <familymember> в tempXDocument при обнаружении <familymember>; и добавьте XmlNodeList в tempXDocument.
  4. Сохраните временный документ.
0 голосов
/ 17 мая 2010

Итерируйте по дочерним элементам <patent-family> через DOM, помня каждый <exchange-documents>, с которым вы столкнетесь на своем пути. Всякий раз, когда вы видите <familymember>, переместите запомненные элементы под него.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...