2012-01-20 2 views
1

을 사용하여 XML 주석 추가 C에서 libxml ++ - 2.6을 사용하여 정말 간단한 XML 문서를 만듭니다. 루트 노드 전에C + libxml ++

  • 의견 :

    추가하는 방법은 무엇입니까?

  • 노드 내부에 댓글이 있습니까?

. 결과

root_node = xmlNewNode(NULL, BAD_CAST "root"); 
xmlDocSetRootElement(doc, root_node); 

dtd = xmlCreateIntSubset(doc, BAD_CAST "root", NULL, BAD_CAST "root.dtd"); 

// neither of these seem to work 

xmlNewComment(BAD_CAST "My Company, LLC"); 

xmlNewDocComment (doc, BAD_CAST "My Company, LLC"); 
+0

libxml ++ 코드가 아닙니다. 이것이 libxml 코드입니다. – murrayc

답변

0

은 여기로 이사있어 I에 유래 내 자신의 대답을 게시했다. 죄송합니다 답변으로 게시 할 수 있지만 형식화 된 inopput 주석을 수행 할 수 없습니다. :-)

이것은 나를 위해 일했다; 노드를 추가로가 그 코멘트 아래 여전히 새 문서/자식 요소 전에 추가 linesof 코멘트를 넣어 전에, 당신은 코멘트를 넣어

root_node = xmlNewNode(NULL, BAD_CAST "root"); 
xmlDocSetRootElement(doc, root_node); 

//========================================================================== 
// Comment block ABOVE the root node 
//========================================================================== 
cur_node = xmlAddPrevSibling(root_node, xmlNewComment(BAD_CAST copyright)); 
      xmlAddNextSibling(cur_node, xmlNewComment(BAD_CAST generated)); 

cur_node = x 

mlNewChild(root_node, NULL, BAD_CAST "Model" , BAD_CAST "FRED"); 

//========================================================================== 
// Comment block inside the root node but ABOVE the Model node 
//========================================================================== 
cur_node = xmlAddPrevSibling(root_node, xmlNewComment(BAD_CAST modinfo)); 
      xmlAddNextSibling(cur_node, xmlNewComment(BAD_CAST more_modinfo)); 

알 수 있습니다.

또한 이러한 주석은 루트 노드 외부에있을 수 있으며 루트의 형제 인 보이는 노드 내부에있을 수 없습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE TEST SYSTEM "testsystem.dtd"> 
<!--Copyright (c) 2012 SuperTechnology, LLC.--> 
<!--Generated Jan 20 2012 16:15:11--> 
<root_node> 
2
#include <stdio.h> 
#include <libxml/tree.h> 

int 
main() 
{ 
    xmlDocPtr foo = xmlNewDoc("1.0"); 
    xmlNodePtr com = xmlNewDocComment(foo, "bla bla"); 
    xmlNodePtr ins = xmlNewDocComment(foo, "more bla"); 
    xmlNodePtr roo = xmlNewDocNode(foo, NULL, "test", NULL); 

    xmlDocSetRootElement(foo, com); 
    xmlAddSibling(foo, roo); 
    xmlAddChild(roo, ins); 

    xmlDocDump(stdout, foo); 
    return 0; 
} 

:이 전에

<?xml version="1.0"?> 
<!--bla bla--> 
<test><!--more bla--></test> 
관련 문제