
appendChild 메소드는 노드의 자식 노드를 삭제하고, 새로운 노드를 추가하는 방식으로 작동합니다. 따라서, 노드를 추가하기 전에 노드의 자식 노드를 백업하거나, 새로운 노드를 추가하기 전에 노드의 자식 노드를 확인하는 등, 필요한 조치를 취해야 합니다.
다음은 appendChild 메소드 대신, 노드의 자식 노드에 새로운 노드를 추가하는 방식으로 코드를 작성한 예시입니다.
#hostingforum.kr
cpp
#include
#include
#include
int main() {
// XML 문서를 파싱하여 DOM 노드를 생성합니다.
xmlDocPtr doc = xmlParseFile("example.xml");
xmlNodePtr root = xmlDocGetRootElement(doc);
// 새로운 노드를 추가합니다.
xmlNodePtr newChild = xmlNewNode(NULL, "새로운 노드");
// 노드의 자식 노드에 새로운 노드를 추가합니다.
newChild->next = root->children;
root->children = newChild;
// XML 문서를 파일에 저장합니다.
xmlSaveFormatFile("result.xml", doc, 1);
// 메모리를 해제합니다.
xmlFreeDoc(doc);
return 0;
}
이 코드 예시는 노드의 자식 노드에 새로운 노드를 추가하는 방식으로 작동합니다. 따라서, 노드의 자식 노드를 삭제하지 않으므로, 원하는 결과를 얻을 수 있습니다.
2025-05-23 00:33