Дублирование мини-XML-дерева

#mini-xml

Вопрос:

Я использую мини-XML для чтения и записи XML-файлов.

В моей системе ввод-вывод на диске выполняется относительно медленно, и я хотел бы свести к минимуму количество раз, когда мне нужно выполнять такой ввод-вывод (mxmlLoadFile). Это можно было бы сделать, если бы я мог дублировать XML-деревья.

Я хотел бы иметь возможность сделать что-то вроде следующего:

 FILE *fp = fopen(fileName, "r");  /* and check for success ... */
mxml_node_t *tree = mxmlLoadFile(NULL, fp, MXML_OPAQUE_CALLBACK);  /* ditto */
mxml_node_t *tree_copy = mxmlCopy(tree);  /* there is no mxmlCopy in Mini-XML */
 

Есть ли способ реализовать mxmlCopy с помощью документированного интерфейса?

Спасибо,

Комментарии:

1. Теоретически я мог бы преобразовать дерево в строку, а затем создать новое дерево из строки, однако это кажется довольно неэффективным, и я бы предпочел более эффективное решение.