Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C+;libxml++;_C_Xml - Fatal编程技术网

使用C+;libxml++;

使用C+;libxml++;,c,xml,C,Xml,我正在使用C语言中的libxml++-2.6创建一个非常简单的XML文档 添加以下内容的技巧是什么: 根节点之前的注释 节点内的注释 #包括 #包括 int main() { xmlDocPtr foo=xmlNewDoc(“1.0”); xmlNodePtr com=xmlNewDocComment(foo,“bla-bla”); xmlNodePtr ins=xmlNewDocComment(foo,“更多bla”); xmlNodePtr roo=xmlNewDocNode(foo,

我正在使用C语言中的libxml++-2.6创建一个非常简单的XML文档

添加以下内容的技巧是什么:

  • 根节点之前的注释
  • 节点内的注释

#包括
#包括
int
main()
{
xmlDocPtr foo=xmlNewDoc(“1.0”);
xmlNodePtr com=xmlNewDocComment(foo,“bla-bla”);
xmlNodePtr ins=xmlNewDocComment(foo,“更多bla”);
xmlNodePtr roo=xmlNewDocNode(foo,NULL,“test”,NULL);
xmlDocSetRootElement(foo,com);
xmlAddSibling(foo,roo);
xmlAddChild(roo,ins);
xmlDocDump(stdout,foo);
返回0;
}
其结果是:

<?xml version="1.0"?>
<!--bla bla-->
<test><!--more bla--></test>

在这个问题被转移到这里之前,我已经在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 ));
请注意,在添加节点时,将注释放在其前面,然后在该注释下面但仍在新文档/子元素之前添加注释行

另外请注意,这些注释可以位于根节点之外,而不是位于根节点的同级可见节点之内

e、 g


这不是libxml++代码。这就是libxml代码。
<?xml version="1.0"?>
<!--bla bla-->
<test><!--more bla--></test>
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>