Libxml2常用概述及常用函数

本文详细介绍了libxml库中用于XML文档操作的关键函数,包括如何设置是否忽略空白节点、分析XML文件并获取文档根节点、创建和操作节点、添加子节点、属性操作以及使用自定义字符类型xmlChar进行字符串操作。通过这些函数,开发者可以高效地进行XML数据的解析、创建和修改。
 

<libxml/parser.h>

//设置是否忽略空白节点,比如空格,在分析前必须调用,默认值是,最好设置成.否则会有惨痛的调试经历...

int xmlKeepBlanksDefault (int val)

 

//分析一个xml文件,并返回一个文档对象指针

xmlDocPtr xmlParseFile (const char * filename)

 

 

<libxml/tree.h>

//xml操作的基础结构提及其指针类型

xmlDoc, xmlDocPtr //文档对象的结构体及其指针

xmlNode xmlNodePtr //节点对象的结构体及其指针

xmlAttr xmlAttrPtr //节点属性的结构体及其指针

xmlNs xmlNsPtr //节点命名空间的结构及其指针

 

 

//根节点相关函数

xmlNodePtr xmlDocGetRootElement (xmlDocPtr doc) //获取文档根节点

xmlNodePtr xmlDocSetRootElement (xmlDocPtr doc, xmlNodePtr root) //设置文档根节点

 

 

//创建子节点相关函数

 

xmlNodePtr xmlNewNode (xmlNsPtr ns, const xmlChar * name) //创建新节点

xmlNodePtr xmlNewChild (xmlNodePtr parent, xmlNsPtr ns, const xmlChar * name, const xmlChar * content) //创建新的子节点

xmlNodePtr xmlCopyNode (const xmlNodePtr node, int extended) //复制当前节点

 

 

//添加子节点相关函数

xmlNodePtr xmlAddChild (xmlNodePtr parent, xmlNodePtr cur) //给指定节点添加子节点

xmlNodePtr xmlAddNextSibling (xmlNodePtr cur, xmlNodePtr elem) //添加后一个兄弟节点

xmlNodePtr xmlAddPrevSibling (xmlNodePtr cur, xmlNodePtr elem) //添加前一个兄弟节点

xmlNodePtr xmlAddSibling (xmlNodePtr cur, xmlNodePtr elem) //添加兄弟节点

 

 

//属性相关函数

xmlAttrPtr xmlNewProp (xmlNodePtr node, const xmlChar * name, const xmlChar * value) //创建新节点属性

xmlChar * xmlGetProp (xmlNodePtr node, const xmlChar * name) //读取节点属性

xmlAttrPtr xmlSetProp (xmlNodePtr node, const xmlChar * name, const xmlChar * value) //设置节点属性

libxml自定义了一个字符类型xmlChar,其本质是 unsigned char.

另外,libxml提供了一个宏来将char*转换成xmlChar*, 名字很有趣,叫 BAD_CAST 它的本质其实是 unsigned char*.

为了方便对xmlChar类型字符串的操作,libxml提供了自己的函数,它们的定义于标准c函数库中的字符串函数很像.

xmlChar* xmlStrcat (xmlChar *cur, const xmlChar * add)

const xmlChar *xmlStrchr(const xmlChar * str, xmlChar val)

int xmlStrcmp (const xmlChar * str1, const xmlChar * str2)

int xmlStrlen (const xmlChar * str)

xmlChar *xmlStrncat (xmlChar * cur, const xmlChar * add, int len)

int xmlStrncmp (const xmlChar * str1, const xmlChar * str2, int len)

const xmlChar *xmlStrstr (const xmlChar * str, const xmlChar * val)

 

相信这些函数大家都看得眼熟,这里就不一一解释了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值