Я использую tinyxml.Deep Copy XML через TinyXML
Как дублировать или создавать копию существующего документа XMLDocument?
http://www.grinninglizard.com/tinyxmldocs/classTiXmlDocument.html#a4e8c1498a76dcde7191c683e1220882
Я пошел по этой ссылке, что говорит с помощью Clone повторить узел. Но это защищено, и я не хочу идти за выводом класса из этого и тому подобное.
Я также не хочу, чтобы сохранить существующий XMLDocument в файл, а затем сделать другим объектом XMLDocument, прочитать файл, чтобы иметь его копию.
Я также не могу выполнить глубокую копию, используя memcpy, потому что я не знаю о размере всего XML.
Я также не хочу, имеющий два объекта используется один за другим, как:
XMLDocumentObj1 = add_some_data
XMLDocumentObj2 = add_the_same_data, and so on
Основная причина, почему я хочу второй экземпляр является то, что первый может быть модифицирован различными разделами кода , в то время как одна и та же копия «читается» в нескольких местах. Мне нужно убедиться, что при чтении XMLDocument ошибок не возникает, потому что есть вероятность, что это может быть изменено в фоновом режиме с помощью потока, и я не получаю никаких сбоев в работе программы.
Обратите внимание, что ShallowClone (как следует из названия) только [Копирует сам узел] (http://www.grinninglizard.com/tinyxml2docs/classtinyxml2_1_1_x_m_l_comment.html#a47b3cdd2e1ad9735826e2d291d483e73), но не его дети. – starturtle