Создать новый узел, который является родителем документа - PullRequest
0 голосов
/ 01 июля 2019

Я использую C для анализа XML с libxml2.

Я создаю новый узел xmlNewTextChild()

cur = xmlDocGetRootElement( doc );
tvNode = xmlNewTextChild( cur, NULL, "tv", NULL );

Мне интересно, как я могу создать этот узел, но без негобыть дочерним по отношению к родительскому узлу, поэтому новый узел в основном является корневым элементом.

Спасибо

1 Ответ

1 голос
/ 01 июля 2019
  1. Создать новый узел

    xmlNodePtr new_root = xmlNewNode(NULL, BAD_CAST "your_root_name");
    
  2. Установить его как корневой элемент

    xmlNodePtr old_root = xmlDocGetRootElement(doc);
    xmlUnlinkNode(old_root);
    xmlDocSetRootElement(doc, new_root);
    
  3. Присоедините корневой узел предыдущего документа в качестве дочернего к новому корню:

    xmlAddChild(new_root, old_root);
    
...