- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
linux下libxml库编程
linux下libxml库编程(-)
发布时间:2008-07-18 14:16:17
1 编写说明
本文档主要介绍XML的基本知识及利用如何利用libxml来操作xml文件。
2 XML基础
XML是eXtensible Markup Language的缩写,它是一种可扩展性标识语言, 能够让你自己创造标识,标识你所表示的内容。DOM全称是Document Object Model(文档对象模型),定义了一组与平台和语言无关的接口,以便程序和脚本能够动态访问和修改XML文档内容、结构及样式。XML创建了标识,而DOM的作用就是告诉程序如何操作和显示这些标识。
XML将数据组织成为一棵树,DOM通过解析XML文档,为XML文档在逻辑上建立一个树模型,树的节点是一个个的对象。这样通过操作这棵树和这些对象就可以完成对XML文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。
XML 中共有12种节点类型,其中最常见的节点类型有5种:
元素:元素是 XML 的基本组成单元。,描述XML的基本信息。
属性:属性节点包含关于元素节点的信息,通常包含在元素里面,描述元素的属性。
文本:包含许多文本信息或者只是空白。
文档:文档节点是整个文档中所有其它节点的父节点。
注释:注释是对相关的信息进行描述、注释。
3 LibXml介绍
需求安装包:libxml2 和libxm2-devel,其中libxml主要包括.so文件,libxml2-devel 包括开发文档和所有的.h文件。可用rpm –ql 命令查看,rpm –qd可查看文档信息。
3.1 数据类型--xmlChar
在libXml中用xmlCha 替代char,XML使用UTF-8编码的一字节字符串。如果你的数据使用其它编码,它必须被转换到UTF-8才能使用libxml的函数。
如同标准c中的char类型一样,xmlChar也有动态内存分配、字符串操作等相关函数。例如xmlMalloc是动态分配内存的函数;xmlFree是配套的释放内存函数;xmlStrcmp是字符串比较函数等等。基本上xmlChar字符串相关函数都在xmlstring.h中定义;而动态内存分配函数在xmlmemory.h中定义。
另外要注意,因为总是要在xmlChar*和char*之间进行类型转换,所以定义了一个宏BAD_CAST,其定义如下:xmlstring.h
#define BAD_CAST (xmlChar *)
原则上来说,unsigned char和char之间进行强制类型转换是没有问题的。
3.2 重要数据结构
XmlDoc: 代表DOM结构中的文档类型。包含由解析文档建立的树结构,xmlDocPtr是指向这个结构的指针。
xmlNode:代表DOM结构中的除文档类型类型外的其它节点类型。 包含单一结点的结构,xmlNodePtr是指向这个结构的指针,它被用于遍历文档树。节点应该是xml中最重要的元素了,xmlNode代表了xml文档中的一个节点,实现为一个struct,内容很丰富:tree.h
typedef struct _xmlNode xmlNode;
typedef xmlNode *xmlNodePtr;
struct _xmlNode {
void *_private;/* application data */
xmlElementType type; /* type number, must be second ! */
const xmlChar *name; /* the name of the node, or the entity */
struct _xmlNode *children; /* parent-childs link */
struct _xmlNode *last; /* last child link */
struct _xmlNode *parent;/* child-parent link */
struct _xmlNode *next; /* next sibling link */
struct _xmlNode *prev; /* previous sibling link */
struct _xmlDoc *doc;/* the containing document */
/* End of common part */
xmlNs *ns; /* pointer to the asso
您可能关注的文档
- Eclipse JAVA EE 创建Web工程.doc
- Eclipse jee + Tomcat 配置Web开发环境.doc
- Eclipse+Tomcat+MySql搭建java web开发环境.docx
- Eclipse+CXF开发Web服务Tomcat部署.docx
- eclipse使用教程(web项目).doc
- ECNE V20 Windows Server 2003网络和服务器管理(教学大纲).doc
- EDA60进制计数器设计.doc
- EDA C答案.doc
- Eclipse和birt开发Web程序.doc
- EDA实验报告 数字时钟设计.docx
- 300516_2024_#ESG_久之洋_2024年环境、社会及公司治理(ESG)报告_2025-03-28.pdf
- 301508_2024_#ESG_中机认检_中机寰宇认证检验股份有限公司2024年度环境、社会和公司治理(ESG)报告_2025-04-21.pdf
- 300693_2024_#ESG_盛弘股份_2024年环境、社会、公司治理(ESG)报告_2025-04-03.pdf
- 300339_2024_#ESG_润和软件_2024年度环境、社会和公司治理(ESG)报告_2025-04-22.pdf
- 300376_2024_#ESG#SD_ST易事特_2024年度可持续发展暨ESG报告_2025-04-29.pdf
- 300834_2024_#ESG_星辉环材_2024年度环境、社会及治理(ESG)报告_2025-04-29.pdf
- 301115_2024_#ESG_联检科技_2024年度环境、社会和治理(ESG)报告_2025-04-29.pdf
- 300308_2024_#ESG_中际旭创_2024年环境、社会及公司治理(ESG)报告_2025-04-21.pdf
- 想生科技产品注册公告及所需文件상생기술제품_등록_공고문_및_제출_서류.pdf
- 300760_2024_#SD_迈瑞医疗_2024年度可持续发展报告_2025-04-29.pdf
最近下载
- 金赛质量运营转型变革研讨会V1.0@2021110.pptx VIP
- 2024-2025学年重庆一中九年级(上)期中数学试卷.pdf VIP
- 人工智能赋能新质生产力:逻辑、模式及路径.pptx VIP
- 呼吸衰竭的表现及护理.pptx
- 重庆一中2024-2025学年九年级上学期周末消化作业数学试卷(解析版).docx VIP
- 2024-2025学年深圳市育才二中小升初入学分班考试语文试卷附答案解析.docx
- 《农机液压系统检修》课程考试复习题库资料及答案.pdf VIP
- 2022年江苏省招警考试.pdf VIP
- 中医外治技术——放血疗法.pptx VIP
- 人工智能赋能新质生产力的机制与效用研究.pptx VIP
文档评论(0)