libxml函数编程封装

libxml函数编程封装

ID:47431495

大小:96.00 KB

页数:16页

时间:2020-01-11

libxml函数编程封装_第页
预览图正在加载中,预计需要20秒,请耐心等待
资源描述:

《libxml函数编程封装》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1      编写说明本文档主要介绍XML的基本知识及利用如何利用libxml来操作xml文件。2      XML基础XML(ExtensibleMarkupLanguage)即可扩展标记语言,它与HTML一样,都是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立。XML中共有12种节点类型,其中最常见的节点类型有5种:元素:元素是XML的基本

2、组成单元。,描述XML的基本信息。属性:属性节点包含关于元素节点的信息,通常包含在元素里面,描述元素的属性。文本:包含许多文本信息或者只是空白。文档:文档节点是整个文档中所有其它节点的父节点。注释:注释是对相关的信息进行描述、注释。xml的解析一般都是用j2se提供的API来解析,在linux下有两种方法来解析,一个是DOM(documentobjectModel),文档对象模型法,还有就是简单API(simpleAPIforXML,SAX)。DOM中的核心概念就是节点。DOM在分析XML文档时,将将组成XML文档的各个部分(元素、属性、文本、注释、处理指令等)映射为一个对象(节点)。在内

3、存中,这些节点形成一课文档树。整棵树是一个节点,树中的每一个节点也是一棵树(子树),可以说,DOM就是对这棵树的一个对象描述,我们通过访问树中的节点来存取XML文档的内容。SAX是一种基于事件驱动的API。利用SAX解析XML文档,牵涉到两个部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发生事件,如元素开始和元素结束事件;而事件处理器则负责对事件做出响应,对传递的XML数据进行处理DOM虽然是W3C的标准,提供了标准的解析方式,但它的解析效率一直不尽如人意,因为使用DOM解析XML时,解析器读入整个文档并构建一个驻留内存的树结构(节点树),然后您的代码才可以使用DOM的

4、标准接口来操作这个树结构。但大部分情况下我们只对文档的部分内容感兴趣,根本就不用先解析整个文档,并且从节点树的根节点来索引一些我们需要的数据也是非常耗时的。相比于文档对象模型DOM,SAX是读取和操作XML数据的更快速、更轻量的方法。SAX允许您在读取文档时处理它,从而不必等待整个文档被存储之后才采取操作。它不涉及DOM所必需的开销和概念跳跃。SAXAPI是一个基于事件的API,适用于处理数据流,即随着数据的流动而依次处理数据。SAXAPI在其解析您的文档时发生一定事件的时候会通知您。在您对其响应时,您不作保存的数据将会被抛弃。SAX不必事先将整个XML文档加载到内存中,因此它占据内存要比

5、DOM小,对于大型的XML文档来说,通常会使用SAX而不是DOM进行解析。3      LibXml介绍需求安装包:libxml2和libxm2-devel,其中libxml主要包括.so文件,libxml2-devel 包括开发文档和所有的.h文件。Linux下可用rpm–ql命令查看,rpm–qd可查看文档信息。3.1   数据类型--xmlChar在libXml中用xmlCha 替代char,XML使用UTF-8编码的一字节字符串。如果你的数据使用其它编码,它必须被转换到UTF-8才能使用libxml的函数。转码函数需用到libiconv库中的ConvertEncoding()函数。

6、如同标准c中的char类型一样,xmlChar也有动态内存分配、字符串操作等相关函数。例如xmlMalloc是动态分配内存的函数;xmlFree是配套的释放内存函数等等。基本上动态内存分配函数xmlmemory.h中定义。而为了方便对xmlChar类型字符串的操作,libxml提供了自己的函数,它们的定义于标准c函数库中的字符串函数很像,xmlChar字符串相关函数都在xmlstring.h中定义:xmlChar*xmlStrcat(xmlChar*cur,constxmlChar*add)constxmlChar*xmlStrchr(constxmlChar*str,xmlCharval

7、)intxmlStrcmp(constxmlChar*str1,constxmlChar*str2)intxmlStrlen(constxmlChar*str)xmlChar*xmlStrncat(xmlChar*cur,constxmlChar*add,intlen)intxmlStrncmp(constxmlChar*str1,constxmlChar*str2,intlen)constxmlChar*xmlStrs

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。