ubuntu php libxml2,Ubuntu 14.04下libxml2的安装和使用

这段代码演示了如何在C语言中利用libxml2库创建一个XML文档,包括设置根节点、添加子节点、属性以及创建子孙节点,并将XML保存到文件。编译时需用到-I和-L选项指定头文件和库文件路径,-lxml2选项链接libxml2库,确保其在命令末尾。
摘要由CSDN通过智能技术生成

#includeint main(int argc, char **argv)

{

//Define document pointer

xmlDocPtr doc = xmlNewDoc(BAD_CAST"1.0");

//Define node pointer

xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST"root");

//Set the root element of the document

xmlDocSetRootElement(doc,root_node);

//Create child nodes directly in the root node

xmlNewTextChild(root_node,NULL,BAD_CAST"newnode1",BAD_CAST"newnode1 content");

xmlNewTextChild(root_node,NULL,BAD_CAST"newnode2",BAD_CAST"newnode2 content");

//Create a new node

xmlNodePtr node = xmlNewNode(NULL,BAD_CAST"node2");

//Create a new text node

xmlNodePtr content = xmlNewText(BAD_CAST"NODE CONTENT");

//Add a new node to parent

xmlAddChild(root_node,node);

xmlAddChild(node,content);

//Create a new property carried by a node

xmlNewProp(node,BAD_CAST"attribute",BAD_CAST"yes");

//Create a son and grandson node element

node = xmlNewNode(NULL,BAD_CAST"son");

xmlAddChild(root_node,node);

xmlNodePtr grandson = xmlNewNode(NULL,BAD_CAST"grandson");

xmlAddChild(node,grandson);

xmlAddChild(grandson,xmlNewText(BAD_CAST"THis is a grandson node"));

//Dump an XML document to a file

int nRel = xmlSaveFile("CreatedXml.xml",doc);

if(nRel != -1)

printf("一个xml文档被创建,写入 %d 个字节\n",nRel);

//Free up all the structures used by a document,tree included

xmlFreeDoc(doc);

//printf("Hello World!\n");

return 0;

}[/code]对这个程序进行编译时,可用以下命令

gcc -I/usr/include/libxml2 CreateXmlFile.c -o CreateXmlFile -L /usr/lib/i386-linux-gnu -lxml2

Ubuntu 14.04下libxml2的安装和使用

其中,-I参数是为了指定gcc编译器查找头文件的路径,-L参数是为了指定libxml2库文件所在的路径,最后的-lxml2指定具体的库文件。(-lxml2一定要放在命令的最后位置,不然会出现找不到链接库的错误,如下图所示)

Ubuntu 14.04下libxml2的安装和使用

具体为什么一定要把-lxml2放在最后的位置,本人目前还没弄明白,有待进一步研究

编译命令也可以写成如下形式:

gcc `xml2-config --cflags` -L /usr/lib/i386-linux-gnu CreateXmlFile.c -o CreateXmlFile -lxml2

gcc `xml2-config --cflags` CreateXmlFile.c -o CreateXmlFile -L /usr/lib/i386-linux-gnu -lxml2

gcc CreateXmlFile.c -o CreateXmlFile `xml2-config --cflags --libs`

形式虽然不一样,其实命令的实际内容是一样的。因为命令xml2-config --cflags的执行结果为

-I/usr/include/libxml2 (指明include头文件所在的目录)

命令xml2-config --libs的执行结果为

-L/usr/lib/i386-linux-gnu -lxml2 (指明libxml2库文件所在的目录以及具体的库文件)

(不管写成何种形式,只要保证 -lxml2 在编译命令的最后位置即可)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值