操作系统是Ubuntu16,编辑器是VScore,编译器是gcc。
下面附上完整的代码:
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
int main()
{
//定义文档和节点指针
xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST "information");
//设置根节点
xmlDocSetRootElement(doc,root_node);
//创建n个节点,设置其内容和属性,然后加入根结点
xmlNodePtr node1 = xmlNewNode(NULL,BAD_CAST "Info1");
xmlAddChild(root_node,node1);
xmlNewProp(node1,BAD_CAST "name",BAD_CAST "Alfred");
xmlNewProp(node1,BAD_CAST "number",BAD_CAST"8100");
xmlNewProp(node1,BAD_CAST "age",BAD_CAST"34");
xmlNewProp(node1,BAD_CAST "country",BAD_CAST"USA");
xmlNodePtr node2 = xmlNewNode(NULL,BAD_CAST "Info2");
xmlAddChild(root_node,node2);
xmlNewProp(node2,BAD_CAST "name",BAD_CAST "Gypsy");
xmlNewProp(node2,BAD_CAST "number",BAD_CAST"8134");
xmlNewProp(node2,BAD_CAST "age",BAD_CAST"27");
xmlNewProp(node2,BAD_CAST "country",BAD_CAST"UK");
xmlNodePtr node3 = xmlNewNode(NULL,BAD_CAST "Info3");
xmlAddChild(root_node,node3);
xmlNewProp(node3,BAD_CAST "name",BAD_CAST "Dats");
xmlNewProp(node3,BAD_CAST "number",BAD_CAST"709314");
xmlNewProp(node3,BAD_CAST "age",BAD_CAST"52");
xmlNewProp(node3,BAD_CAST "country",BAD_CAST"Mozambique");
xmlNodePtr node4 = xmlNewNode(NULL,BAD_CAST "Info4");
xmlAddChild(root_node,node4);
xmlNewProp(node4,BAD_CAST "name",BAD_CAST "Manhattan");
xmlNewProp(node4,BAD_CAST "number",BAD_CAST"9047967");
xmlNewProp(node4,BAD_CAST "age",BAD_CAST"36");
xmlNewProp(node4,BAD_CAST "country",BAD_CAST"Sudan");
xmlNodePtr node5 = xmlNewNode(NULL,BAD_CAST "Info5");
xmlAddChild(root_node,node5);
xmlNewProp(node5,BAD_CAST "name",BAD_CAST "Finlay");
xmlNewProp(node5,BAD_CAST "number",BAD_CAST"124679");
xmlNewProp(node5,BAD_CAST "age",BAD_CAST"24");
xmlNewProp(node5,BAD_CAST "country",BAD_CAST"USA");
xmlNodePtr node6 = xmlNewNode(NULL,BAD_CAST "Info6");
xmlAddChild(root_node,node6);
xmlNewProp(node6,BAD_CAST "name",BAD_CAST "Yedda");
xmlNewProp(node6,BAD_CAST "number",BAD_CAST"8098");
xmlNewProp(node6,BAD_CAST "age",BAD_CAST"31");
xmlNewProp(node6,BAD_CAST "country",BAD_CAST"Dubai");
xmlNodePtr node7 = xmlNewNode(NULL,BAD_CAST "Info7");
xmlAddChild(root_node,node7);
xmlNewProp(node7,BAD_CAST "name",BAD_CAST "Akashi");
xmlNewProp(node7,BAD_CAST "number",BAD_CAST"34501");
xmlNewProp(node7,BAD_CAST "age",BAD_CAST"41");
xmlNewProp(node7,BAD_CAST "country",BAD_CAST"Japan");
xmlNodePtr node8 = xmlNewNode(NULL,BAD_CAST "Info8");
xmlAddChild(root_node,node8);
xmlNewProp(node8,BAD_CAST "name",BAD_CAST "Tatum");
xmlNewProp(node8,BAD_CAST "number",BAD_CAST"9034561");
xmlNewProp(node8,BAD_CAST "age",BAD_CAST"29");
xmlNewProp(node8,BAD_CAST "country",BAD_CAST"UK");
xmlNodePtr node9 = xmlNewNode(NULL,BAD_CAST "Info9");
xmlAddChild(root_node,node9);
xmlNewProp(node9,BAD_CAST "name",BAD_CAST "Will");
xmlNewProp(node9,BAD_CAST "number",BAD_CAST"589620");
xmlNewProp(node9,BAD_CAST "age",BAD_CAST"37");
xmlNewProp(node9,BAD_CAST "country",BAD_CAST"China");
//存储xml文档
int nRel = xmlSaveFile("CreateXmlInfo.xml",doc);
if (nRel != -1)
{
printf("一个xml文档被创建,写入%d个字节\n", nRel);
}
//释放文档内节点动态申请的内存
xmlFreeDoc(doc);
return 0;
}