libxml使用记录
来源:互联网 发布:mac桌面文件放哪里 编辑:程序博客网 时间:2024/06/05 07:42
本次做便捷巡检的任务,对于xml的操作采用了libxml的方式,此过程中遇到了编码的问题,但是没有深入去了解,首先对于libxml库的搭建,(已经记录在文档里)。
第一步,首先读取xml文件,发现出现解析的是乱码,原因是我的自定义XML文件的声明encoding="GB2312",但是libxml的默认只解析是UTF-8,故此解析乱码。所以换到UTF-8,妥协了。
第二步,发现libxml的字符类型是unsigned char* 这和char* 是不同的,强制转换(char*),在使用xmlChar*给string赋值时,报错,运行时错误,只好换成memcpy函数。
这中间以为string是个数据类型,在vs2008里直接查看,当时,始终提示<无法计算>,后来才忽然明白,string是个类,得用c_str()方法去输出里面的字符串值(这真丢人)。
后来用 memcpy((char*)DBItem->SourceID.c_str(),szAttr,strlen((char*)szAttr)+1);
拷贝要计算拷贝长度,当时用的是sizeof(szAttr)值一直是4,后来明白这计算的是指针的长度,而不是指向的字符串长度,故采取strlen方法,但是输出目的string值的时候,发现乱码,后来才明白,strlen少加了'\0'的一个长度,故‘+1’。
在我解析配置节点的内容时,将长字符用memcpy拷贝到我的(char*)string.c_str()对象时发现,自己的string对象指向的地址已经乱码了,后来只能创建了临时的char*指针,TRACE输出时,才没有报错。是不是memcpy在拷贝的源地址指向的字符串包含了换行与很多空格就不能用?(疑难问题)!
- libxml使用记录
- libxml++2.37.1编译记录
- libxml使用实例
- LibXML 使用学习
- libxml
- libxml
- libxml
- libxml
- libxml++
- libxml
- 使用libxml读取分析配置文件
- perl LibXML模块使用详解
- 使用libxml提示libxml/tree.h找不到的问题解决
- 使用libxml提示libxml/tree.h找不到的问题解决
- 使用libxml提示libxml/tree.h找不到的问题解决
- 使用libxml提示libxml/tree.h找不到的问题解决
- libxml中使用xpath解析xml文件
- libxml的使用(1)--读取xml
- 对easyui datagrid 进行扩展拉动滚动条到底部自动加载数据一
- ubuntu mkimage command not found 解决方案!!!
- windows远程重启
- Highcharts X轴文字竖排
- javascript 数据结构 之 单链表
- libxml使用记录
- Android开发---001:开发环境搭建及HelloWorld
- CentOS6.3文字界面下使用yum安装Gnome桌面
- ffmpeg main函数
- SQL Server 2005 行号、合并、分组
- 对easyui datagrid 进行扩展拉动滚动条到底部自动加载数据《二》
- TRILL技术及其组网模型
- Windows Phone8 使用组播通信
- Python用subprocess的Popen来调用系统命令