在此之前得到搬到这里我已经张贴在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));
注意,当您添加一个节点,你把它的评论,然后把该评论下方,但仍是新的文档/子元素之前附加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>
这不是libxml ++代码。这是libxml代码。 – murrayc