使用C+;libxml++;
我正在使用C语言中的libxml++-2.6创建一个非常简单的XML文档 添加以下内容的技巧是什么:使用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,
- 根节点之前的注释
- 节点内的注释
#包括
#包括
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>