2012-01-20 13 views
1

を使用したXMLコメントの追加私は本当に単純なXML文書を作成するためにC言語でlibxml ++ - 2.6を使用しています。ルートノードの前に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

はここに移動してしまった私はStackOverflowの中に自分の答えを掲示していました。申し訳ありませんが回答として投稿していますが、コメントに書式設定された入力を行うことはできません。 :-)

これは私のために働いています。

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)); 

ノードを追加すると、それは、その後、新規doc /子要素の前にまだそのコメントの下に追加linesofコメントを置くが、前に、あなたがコメントを入れていることに注意してください。

また、これらのコメントは、ルートノードの外部にあり、ルートの兄弟である目に見えるノード内ではないことに注意してください。

<?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> 
関連する問題