libxml主要函数说明 (一)
许多事物符合80/20法则,libxml中也是20%的函数提供了80%的功能。下面的列表列出了libxml的主要函数及其用法说明。
1. 全局函数说明
头文件引用 |
xml2config --cflags |
库文件引用 |
xml2config --libs |
主要头文件 |
parse.h tree.h xpath.h |
简单例程 |
Makefile: INCLUDE=-I./ -I$HOME/include `xml2config --cflags` LIBRARY=-L./ -L$HOME/lib `xml2config --libs` *.c或*.cpp #include <libxml/parse.h> #include <libxml/tree.h> #include <libxml/xpath.h> |
函数功能 |
在分析XML数据是,去除空白字符。如果不去除空白字符,则这些字符也会被当做一个node来处理 |
函数接口 |
int xmlKeepBlanksDefault(int val) |
参数说明 |
val:0或者1。0表示去除空白字符,1表示不去除 返回值:0表示设置失败,1表示设置成功,一般不用判断 |
简单例程 |
xmlKeepBlanksDefault(0); |
2. XML文件载入和保存函数
函数功能 |
将XML文件从硬盘上载入到内存中,并且生成DOM树。使用完毕之后,需要用xmlFreeDoc()来释放资源 |
函数接口 |
xmlDocPtr xmlParseFile(const char * filename) |
参数说明 |
filename:XML文件名称。 返回值:如果载入成功,则返回这个文档的根节点。否则返回NULL |
简单例程 |
xmlDodPtr pdoc; pdoc = xmlParseFile("123.xml"); if( pdoc == NULL ) { printf("Fail to parse XML file.\n"); } |
函数功能 |
将内存中的DOM树,保存到硬盘上,生成一个带格式的XML文件 |
函数接口 |
int xmlSaveFormatFileEnc(const char * filename, xmlDocPtr cur, const char * encoding, int format) |
参数说明 |
filename:需要保存的文件的名称 cur:需要保存的XML文档 encoding:导出文件的编码类型,或者为NULL format:是否格式化。0表示不格式化,1表示需要格式化。注意:只有当xmlIndentTreeOutput设置为1,或者xmlKeepBlanksDefault(0)时,format设置为1才能生效 返回值:写入文件中的字节数量 |
简单例程 |
xmlDodPtr pdoc; pdoc = xmlParseFile("123.xml"); if( pdoc == NULL ) { printf("Fail to parse XML file.\n"); } Do_something_with_pdoc(); int filesize; filesize = xmlSaveFormatFileEnc("321.xml", pdoc, "gb2312",1); if(filesize == -1) { printf("Fail to save XML to file.\n"); } |
3. XML内存载入和输出函数
函数功能 |
将一块内存中的XML数据生成一个DOM树。使用完毕之后,需要用xmlFreeDoc()来释放资源 |
函数接口 |
xmlDocPtr xmlParseMemory(const char * buffer, int size) |
参数说明 |
buffer:存放XML格式数据的内存区 size:内存中XML格式数据的长度 返回值:如果载入成功,则返回这个文档的根节点;否则返回NULL |
简单例程 |
char *buffer; int size; xmlDocPtr pdoc; // read_data_to_buffer buffer = …… size = strlen(buffer); pdoc = xmlParseMemory(buffer, size); if( pdoc == NULL) { printf("Fail to parse XML buffer.\n"); } |
函数功能 |
将DOM树导出到内存中,形成一个XML格式的数据 |
函数接口 |
void xmlDocDumpFormatMemoryEnc(xmlDocPtr out_doc, xmlChar ** doc_txt_ptr, int * doc_txt_len, const char * txt_encoding, int format) |
参数说明 |
out_doc:需要输出成为一个buffer的XML文档 doc_txt_ptr:输出文档的内存区。由该函数在内部申请。使用完成之后,必须调用xmlFree()函数来释放该内存块 doc_txt_len:输出文档内存区的长度 txt_encoding:输出文档的编码类型 format:是否格式化。0表示不格式化,1表示需要格式化。注意只有当xmlIndentTreeOutput设置为1,或者xmlKeepBlanksDefault(0)时,format设置为1才能生效 |
简单例程 |
xmlChar *outbuf; int outlen; xmlDocPtr pdoc; pdoc = …… xmlDocDumpFormatMemoryEnc(pdoc, &outbuf, &outlen, "gb2312", 1); xmlFree(outbuf); |
libxml主要函数说明 (一)相关推荐
- libxml主要函数说明
许多事物符合80/20法则,libxml中也是20%的函数提供了80%的功能.下面的列表列出了libxml的主要函数及其用法说明. 1. 全局函数说明 头文件引用 xml2config --cfl ...
- libxml -- 解析 XML 文档
参考 http://xmlsoft.org/ http://www.miidoo.cn/info_detail-204.html http://www.blogjava.net/wxb_nudt/ar ...
- libxml解析xml文件的一些总结
libxml -- 解析 XML 文档 XML 介绍:XML 和 DOM libxml 介绍 数据类型 - xmlChar数据结构 创建 XML 文档解析 XML 文档修改 xml 文档 Xpath ...
- c语言中shmget相关函数,共享内存函数(shmget、shmat、shmdt、shmctl)及其范例 - guoping16的专栏 - 博客频道 - CSDN...
2014年4月2日共享内存函数(shmget.shmat.shmdt.shmctl)及其范例 - guoping16的专栏 - 博客频道 - http://doc.xuehai.net 登录 | 注册 ...
- libxml2中处理中文
在上篇中简单介绍了libxml2读写XML文件. 本篇将介绍如何在libxml2中读写中文数据. libxml2中提供了编解码器,通过建立自己的编码接口由libxml根据当前编码进行调用,实质上是使用 ...
- XML---(2)LIBXML2库Linux使用指南
libxml(一) 摘要 Libxml是一个有免费许可的用于处理XML.可以轻松跨越多个平台的C语言库.这个指南提供它的基本函 ...
- 基于c的xml文件解析(转)
libxml(一) 摘要 Libxml是个有免费许可的用于处理XML.能轻松跨越多个平台的C语言库.这个指南提供他的基本函数的例子. 绪论 Libxml是个实现读.创建及操纵XML数据功能的C语言库. ...
- W3c phpl基础参考手册-2016-01参考
php Array Calendar Date Directory Error Filesystem Filter FTP HTTP LibXML Mail Math MySQL SimpleXML ...
- libxml库之xmlParseMemory和xmlDocDumpFormatMemory函数
两个函数,怎么在内存中处理xml文件.有个疑问,xmlChar *xmlbuff;这样系统第一次分配了xmlbuff的大小以后.对xml做修改,可以成功吗. 有空试试. 函数原型: xmlParseM ...
- php的libxml函数
打算给初学者分享下微信,从头看微信文档,解析xml时,出现了一个函数:libxml_disable_entity_loader(),没见过... 就决定简单的了解下,可查看我转载的文章: XML注入攻 ...
最新文章
- legend位置 pyecharts_实验|pyecharts数据可视化分析-1
- java super()方法_Java super关键字的使用方法详解
- Python嵌套列表解析式(又称列表推导式)写法剖析与应用举例
- mysql增量_mysql实时增量备份
- HTML5-画布(canvas)效果之-渐变色
- redux 简明学习
- 实践 | 在MySql中,这四种方法可以避免重复插入数据!
- [Swift通天遁地]二、表格表单-(14)实时调整表单元素的激活和失效
- html密码框输入内容隐藏,密码框显示提示文字的功能实现
- 心路历程(四)-我的2015
- 银行即将关闭直接代扣通道,第三方支付有麻烦了
- Scala对象 转Json字符串
- win10计算机的数字小键盘,Win10开机默认开启数字小键盘的方法
- 51单片机带闹钟c语言程序,51单片机编写的闹钟程序
- Pycharm 教育版下载/安装 无需注册破解
- 转载:Fiddler 教程
- Ac4GlcNAz,98924-81-3,N-乙酰葡糖胺叠氮基,可以进行糖化学修饰
- 球重力异常matlab程序,球体重力异常正演程序介绍.docx
- 计算机辅助普通话水平证书要考吗,目前普通话证书考试都是机器测试吗?
- python:pyinstaller打包可执行文件
热门文章
- 2010年11.30日 爱普生 武昌培训 Technical workshop OPOS INSTALL
- 使用highcharts绘制图表,如何在tooltip里显示服务器端的其他数据
- 虚拟机外接USB设备情况的vMotion问题
- 【基础知识】【中缀转逆波兰(后缀)表达式】
- Centos6.5 x86_64系统安装kvm虚拟机—基础篇
- ISA 2000与ISA 2004的区别
- Java在 list 中对每个元素遍历其是否在原 list 中有相同元素的方法
- Golang研学:defer!如何掌握并用好(延迟执行)
- 3.代码托管仓库 - GitHub
- postman 使用