12月 092015
 

导师布置的任务,需要用到libxml2解析XML文档,由于编程环境采用了VS 2010,而网上搜到的结果只有VS2005,但大致过程基本一样,地址:http://www.hushuang.net/?p=122

我下载的是Windows平台上的,不需要安装,直接可以在我们自己的程序中使用,但是需要在项目中配置一番才能正确工作。windows版本的的下载地址是http://www.zlatkovic.com/libxml.en.html;这个版本只提供了头文件、库文件和dll,不包含源代码、例子程序和文档。在文本中,只需要下载libxml2库、iconv库和zlib库就行了。下面说说怎么在项目中配置libxml2。
启动vs2005后新建一个空项目,将你下载的三个库拷贝到工程文件夹中,如图所示:

20110607_01
随后就需要配置在工程中配置头文件了,击菜单命令 “项目/属性”,弹出项目属性对话框后,选择配置属性->C/C++->常规,然后在附加包含目录中添加你在程序中要用到的头文件所在目录:
20110607_02
做完这一步后,我们就要添加lib库文件了,将需要的lib库文件拷贝到当前工程目录中,然后在程序中使用#prama comment(lib,”name.lib”)将链接所需要的库文件加载。奇怪的是,我只加载了libxm2.lib就可以成功链接了。
下面给出程序示例:
#include
#include
#include “libxml/parser.h”
#include “libxml/tree.h”
#pragma comment(lib,”libxml2.lib”)
using namespace std;
int main()
{
//定义文档和节点指针
xmlDocPtr doc = xmlNewDoc(BAD_CAST”1.0″);
xmlNodePtr root_node = xmlNewNode(NULL,BAD_CAST”root”);
//设置根节点
xmlDocSetRootElement(doc,root_node);
//在根节点中直接创建节点
xmlNewTextChild(root_node, NULL, BAD_CAST “newNode1″, BAD_CAST “newNode1 content”);
xmlNewTextChild(root_node, NULL, BAD_CAST “newNode2″, BAD_CAST “newNode2 content”);
xmlNewTextChild(root_node, NULL, BAD_CAST “newNode3″, BAD_CAST “newNode3 content”);
//创建一个节点,设置其内容和属性,然后加入根结点
xmlNodePtr node = xmlNewNode(NULL,BAD_CAST”node2″);
xmlNodePtr content = xmlNewText(BAD_CAST”NODE CONTENT”);
xmlAddChild(root_node,node);
xmlAddChild(node,content);
xmlNewProp(node,BAD_CAST”attribute”,BAD_CAST “yes”);
//创建一个儿子和孙子节点
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”));
//存储xml文档
int nRel = xmlSaveFile(“CreatedXml.xml”,doc);
if (nRel != -1)
{
cout<<”一个xml文档被创建,写入”<<nrel<<”个字节”<<endl; }=”” 释放文档内节点动态申请的内存=”” xmlfreedoc(doc);=”” return=”” 1;=”” 到这里程序已经可以正确编译和链接了,但是如果你试图运行,则会发现程序不能运行,缺少.dll文件。所以最后一步就是将需要的.dll文件拷贝到当前工作目录中。好了,你已经成功可以使用libxml2库了。=”” <=”” em=””>

这里需要说明的是,在VS 2010中,需要在solution explorer中右键点击“Solution ‘XXX’”(XXX表示你所建立的项目名)下的“XXX”,在弹出菜单中点击“Properties”才能找到“选择配置属性->C/C++->常规……”,然后进行一系列的操作。

 


 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)