, как вы уже догадались, есть метод clone_node
. Из онлайн справки:
xml_node * clone_node (const xml_node * source, xml_node * result = 0);
Клонирует xml_node и его иерархию дочерних узлов и атрибутов. Узлы и атрибуты выделяются из этого пула памяти. Имена и значения не клонируются, они разделяются между клоном и источником. Результирующий узел может быть необязательно указан в качестве второго параметра, и в этом случае его содержимое будет заменено клонированным исходным узлом. Это полезно, когда вы хотите клонировать весь документ.
Подход, предложенный FreshCode , довольно прост, но добавляет «toString & parseBack» ненужные издержки, которых вы, возможно, захотите избежать.