windows 系统在vs2010 中配置libxml2,及读取xml代码例子

1、先下载libxml2 (下载地址 http://download.csdn.net/detail/luoww1/8095273),里面包括了三个文件夹分别:zlib-1.2.3.win32 和iconv-1.9.2.win32 和libxml2-2.7.6.win32

2、将下载内容中的iconv.dll 和zlib1.dll 拷贝到C盘下的Windows文件夹中

3、在项目中新建include 文件夹,解压的到的libxml2和iconv中的include文件夹中的内容拷入到该include文件夹中,若项目名称为proxyServer,目录结构如图所示

4、VS2010项目proxyServer,右击,选择“属性”-->C/C++-->常规 在附加包含目录中添加

.\include

5、将iconv.lib 和iconv_a.lib和libxml2.lib和libxml2_a.lib放在项目根目录中,可见上面的图片

6、VS2010项目proxyServer,右击,选择“属性”-->链接器-->输入中添加

iconv.lib
;iconv_a.lib;libxml2.lib;libxml2_a.lib

</pre>7、工程中用libxml2读取xml文件的代码<pre name="code" class="cpp">#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <libxml/parser.h>
#include <libxml/tree.h>
int main(int argc, char** argv) {
xmlDocPtr doc;           //定义解析文档指针
    xmlNodePtr curNode;      //定义结点指针(你需要它为了在各个结点间移动)
    xmlChar *szKey;          //临时字符串变量
    char szDocName[] = "Device.xml";
    using std::string;
    using std::cout;
    using std::endl;

    doc = xmlReadFile(szDocName,"UTF-8",XML_PARSE_RECOVER); //解析文件
    //检查解析文档是否成功,如果不成功,libxml将指一个注册的错误并停止。
    //一个常见错误是不适当的编码。XML标准文档除了用UTF-8或UTF-16外还可用其它编码保存。
    //如果文档是这样,libxml将自动地为你转换到UTF-8。更多关于XML编码信息包含在XML标准中.
    if (NULL == doc)
    {
       //文档打开错误
       return -1;
    }
    curNode = xmlDocGetRootElement(doc); //确定文档根元素
    /*检查确认当前文档中包含内容*/
    if (NULL == curNode)
    {
       //空得xml文件
       xmlFreeDoc(doc);
       return -2;
    }
    /*在这个例子中,我们需要确认文档是正确的类型。“Devices”是在这个示例中使用文档的根类型。*/
    if (xmlStrcmp(curNode->name, BAD_CAST "Devices"))
    {
       //分析根元素失败
       xmlFreeDoc(doc);
       return -3;
    }
    curNode = curNode->xmlChildrenNode;
    xmlNodePtr propNodePtr = curNode;//xmlNodePtr 节点列表的指针
    while(curNode != NULL)
    {
       //取出节点中的内容
       if ((!xmlStrcmp(curNode->name, (const xmlChar *)"Device")))  //取出节点Device的内容
       {
           szKey = xmlNodeGetContent(curNode);//获取内容
           cout << szKey << endl;
           xmlFree(szKey);
       }
       //查找带有属性url的节点
       if (xmlHasProp(curNode,BAD_CAST "url"))
       {
           propNodePtr = curNode;
		   //cout<< xmlGetProp(propNodePtr,BAD_CAST "url") <<endl;//输出URL的值
       }
       curNode = curNode->next;
    }
  //查找属性
    xmlAttrPtr attrPtr = propNodePtr->properties; //xmlAttrPtr 属性列表的指针
    while (attrPtr != NULL)
    {
       if (!xmlStrcmp(attrPtr->name, BAD_CAST "url"))
       {
           xmlChar* szAttr = xmlGetProp(propNodePtr,BAD_CAST "url");
           cout << szAttr << endl; //找到url的属性
           xmlFree(szAttr);
       }
       attrPtr = attrPtr->next;
    }

    xmlFreeDoc(doc);//函数关闭文档指针,并清除本文档中所有节点动态申请的内存
}

8、Device.xml
文件的内容

<?xml version="1.0" encoding="GB2312"?>
<Devices>
	<Device  url="www.baidu.com"  />
	<Device url="www.taobao.com"/>
</Devices>
时间: 2024-08-01 21:44:45

windows 系统在vs2010 中配置libxml2,及读取xml代码例子的相关文章

vs2010中配置OpenGL以及针对64位系统所遇问题的解决办法

一.下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作 第一步,选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++ Builder,Dev-C++等,它们都是支持OpenGL的. 我选择Visual Studio 2010和VC6++作为学习OpenGL的环境. 第二步,安装GLUT工具包 GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装. Windows环境下的GLUT下载地址:

VS2010中配置OpenGL

下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作第一步,选择一个编译环境现在Windows系统的主流编译环境有Visual?Studio,Broland?C++?Builder,Dev-C++等,它们都是支持OpenGL的. 我选择Visual?Studio?2010和VC6++作为学习OpenGL的环境.第二步,安装GLUT工具包GLUT不是OpenGL所必须的,但它会给我们的学习带来一定的方便,推荐安装.Windows环境下的GLUT下载地址:(大小约为15

在Windows Server 2016操作系统中配置NIC组合(网卡绑定)

背景:今天在做citrix的项目时,客户有台物理机windows server 2016标准版,R740服务器四个网卡,客户想将2个网卡绑定使用一个IP地址. 搜索了一些资料整理了一下. 主要知识点:在Windows Server 2016系统中,使用系统自带“NIC组合”功能进行网卡绑定操作. 操作步骤: 将需要进行绑定的网口插上网线,在Windows网络和共享中心中的适配器设置确定网口名称,如“以太网 #”. 注意:在网卡绑定操作结束前,请勿手动指定网口的IP地址等设置,保持默认的自动获取I

windows系统下使用netsh配置IPv6相关

习惯了Linux下命令行配置网络的简洁,在windows系统下是不是感觉很别扭?下面分享几个方便的命令操作. 释放地址 ipconfig /release "Local Area Connection 1" 重新获取地址 ipconfig /renew "Local Area Connection 1" 配置IPv6单播地址 netsh interface ipv6 add/del address "Local Area Connection 1"

VS2010中配置C#Project不生成.vhost.exe和.pdb文件的方法

在VS2010中编译C#工程时,在C#的Project的属性界面的Build选项卡中当Configuration : Relese 时,依然会生成扩展名为.vhost.exe和.pdb文件. 其中.pdb是debug时使用的debug database文件;.vhost.exe是从VS2005开始的VS host process 不生成.vshost.exe文件的步骤如下图:打开工程属性的Debug标签选项卡,将Configuration选择为Relese , 去掉 Enable the Vis

pear中几个实用的xml代码库

1.XML_Beautifier 用于将一段排版凌乱的XML文档美化 1 <?php 2 require_once "XML/Beautifier.php"; 3 $fmt = new XML_Beautifier(); 4 $result = $fmt->formatFile('originalFile.xml', 'beautifiedFile.xml'); 5 if (PEAR::isError($result)) { 6 echo $result->getMe

windows下访问虚拟机中配置的虚拟主机

一般情况下,这种是不会访问不了的,但是,可以关闭虚拟机系统中的防火墙,并配置windows下的host来解决这个问题.[虚拟机ip  虚拟域名] deepin里边这样操作 具体操作: 安装防火墙输入:sudo apt-get install ufw 结果如下图:如果提示(Y/N)的,就输入y回车就行了(大小写无所谓),和下图一样就说明已经安装上了. 查看防火墙状态:sudo ufw status提示:Status: active 说明已经成功开启了提示:Status: inactive 说明已经

Windows系统Stunnel客户端的配置

Stunnel官方就有Windows版本,到下面的地址下载: https://www.stunnel.org/downloads.html 选择”stunnel-X.XX-installer.exe“并且安装到一个“可写”的位置,因为Windows Vista/7/8系统里如果安装到C:\Program Files或者C:\Program Files (x86),会无法写入配置.日志或者不方便放置用户的证书,因此本着偷懒和“绿化”的原则,建议安装到其他地方.其实你也可以安装了以后,把整个程序目录

在 windows 系统上 安装与配置 PHP + Apache

参考:http://www.cnblogs.com/pharen/archive/2012/02/06/2340628.html 在大学时候上过一门PHP课时,因为课堂需要配置过一次PHP+Mysql+Apache.以为以后再也不会碰它了. 没想到过了四年为了工作再次需要接触 PHP. 这次安装真是麻烦死了... 本文目的: 安装配置 PHP+ Apache. 版本与下载地址 PHP   php-5.6.6-Win32-VC11-x64   http://windows.php.net/down