сравнить и добавить элементы из одного XML в другой - PullRequest
0 голосов
/ 03 марта 2011

У меня есть два XML-файла

XML1

 <node>
    <name>abc</name>
    <age>25</age>
  </node>

xml2

 <node>
    <name>abc</name>
    <age>25</age>
  </node>
  <node>
    <name>xyz</name>
    <age>27</age>
  </node>

Я хочу сравнить эти два файла и добавить недостающие узлы из XML2 в XML1. Я использую tinyxml в C ++.

Я думаю о добавлении guid к каждому узлу, т.е.

<node id={732C8F52-D3E2-4929-9199-48F8F38EA5D3}>
    <name>xyz</name>
    <age>27</age>
  </node>

Теперь, когда я буду сравнивать, я могу проходить по узлам в xml и сравнивать узлы на основе идентификатора и добавлять недостающие узлы в XML1.

Есть ли лучший способ сделать это?

1 Ответ

0 голосов
/ 01 июня 2016

Конечно, лучше использовать библиотеку синтаксического анализа XML, например библиотеку Property_Tree в Boost Repository , TinyXML или pugixml. - который считается очень мощным.

Вы должны быть в состоянии найти некоторый компаратор (или просто построить его) на основе функций, предоставленных выше, и сравнить свои записи.

Использование Boost для чтения и записи файлов XML для получения дополнительной информации.

...