目前共有4篇帖子。
Linux系統下編譯libxml2程序的方法
1樓 巨大八爪鱼 2016-2-20 10:34
Makefile:
# 連接
test: test.o
    gcc test.o -o test -lxml2

# 編譯
test.o: test.c
    gcc -c test.c -I/usr/include/libxml2
2樓 巨大八爪鱼 2016-2-20 10:34
C程序:
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>

int main(int argc, char **argv)
{
    xmlDocPtr doc = NULL;
    xmlNodePtr root_node = NULL, node = NULL, node1 = NULL;
    doc = xmlNewDoc(BAD_CAST "1.0");
    root_node = xmlNewNode(NULL, BAD_CAST "root");
    xmlDocSetRootElement(doc, root_node);
    xmlNewChild(root_node, NULL, BAD_CAST "node1",BAD_CAST "content of node1");
    node=xmlNewChild(root_node, NULL, BAD_CAST "node3",BAD_CAST"node has attributes");
    xmlNewProp(node, BAD_CAST "attribute", BAD_CAST "yes");
    node = xmlNewNode(NULL, BAD_CAST "node4");
    node1 = xmlNewText(BAD_CAST"other way to create content");
    xmlAddChild(node, node1);
    xmlAddChild(root_node, node);
    xmlSaveFormatFileEnc(argc > 1 ? argv[1] : "-", doc, "UTF-8", 1);
    xmlFreeDoc(doc);
    xmlCleanupParser();
    xmlMemoryDump();
    return 0;
}
3樓 巨大八爪鱼 2016-2-20 10:35
使用xml2-config --cflags命令可以查看編譯選項
使用xml2-config --libs命令可以查看連接選項
4樓 巨大八爪鱼 2016-2-20 12:31
#include <stdio.h>
#include <libxml/parser.h>
#include <libxml/tree.h>

int main(void)
{
    xmlNodePtr root_node, node, node1;
    xmlDocPtr doc = xmlNewDoc(BAD_CAST "1.0");
    
    root_node = xmlNewNode(NULL, BAD_CAST "data");
    xmlDocSetRootElement(doc, root_node);
    xmlNewChild(root_node, NULL, BAD_CAST "name",BAD_CAST "Tony");
    node = xmlNewChild(root_node, NULL, BAD_CAST "description", BAD_CAST "He is a boy.");
    xmlNewProp(node, BAD_CAST "age", BAD_CAST "15");
    node = xmlNewNode(NULL, BAD_CAST "number");
    node1 = xmlNewText(BAD_CAST "4452375");
    xmlAddChild(node, node1);
    xmlAddChild(root_node, node);
    xmlSaveFormatFileEnc("file.xml", doc, "UTF-8", 1);
    xmlFreeDoc(doc);
    xmlCleanupParser();
    xmlMemoryDump();
    return 0;
}

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。