由于libxml函数很多,而且网页颜色页不太好看,加上寻找函数也不容易,所以在此贴出常用函数供自己和大家参考
//非常重要的2个函数虽然这两个函数不在tree.h但对于使用tree.h中的函数很重要,所以在这里列出来
<libxml/parser.h>
int xmlKeepBlanksDefault (int val) //设置是否忽略空白节点,比如空格,在分析前必须调用,默认值是0,最好设置成1.否则会有惨痛的调试经历...
xmlDocPtr xmlParseFile (const char * filename) //分析一个xml文件,并返回一个文档对象指针 <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库提供了一些.net风格的函数,以流的形式来读取并分析xml文件.
<libxml/xmlreader.h>
xmlTextReader xmlTextReaderPtr //XmlReader的结构体及其指针
xmlTextReaderPtr xmlReaderForFile (const char * filename, const char * encoding, int options) //打开一个xml文件并返回xmlreader对象,准备开始分析.
int xmlTextReaderRead (xmlTextReaderPtr reader) //读取下一个节点(注意,是下一个,不是下一个同层节点)
int xmlTextReaderNext (xmlTextReaderPtr reader) //读取下一个同层节点
int xmlTextReaderNodeType (xmlTextReaderPtr reader) //判断当前节点的类型
xmlChar *xmlTextReaderGetAttribute (xmlTextReaderPtr reader, const xmlChar * name) //获取当前节点的指定属性
xmlChar *xmlTextReaderReadString (xmlTextReaderPtr reader) //读取当前节点下的text
xmlNodePtr xmlTextReaderExpand (xmlTextReaderPtr reader) //将当前节点展开成一个节点对象(慎用)
int xmlTextReaderHasValue (xmlTextReaderPtr reader) //判断当前节点是否有text值
int xmlTextReaderHasAttributes (xmlTextReaderPtr reader) //判断当前节点是否包含属性
int xmlTextReaderMoveToAttribute (xmlTextReaderPtr reader, const xmlChar * name) //移动指针到当前节点的指定属性名的属性
int xmlTextReaderMoveToAttributeNo (xmlTextReaderPtr reader, int no) //移动指针到当前节点指定属性编号的属性
int xmlTextReaderMoveToElement (xmlTextReaderPtr reader) //将指针移会当前节点
int xmlTextReaderMoveToFirstAttribute (xmlTextReaderPtr reader) //将指针移动到当前节点的第一个属性
int xmlTextReaderMoveToNextAttribute (xmlTextReaderPtr reader) //将指针移动到当前节点的下一个属性
xmlChar *xmlTextReaderName (xmlTextReaderPtr reader) //返回当前节点的名字
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)
相信这些函数大家都看得眼熟,这里就不一一解释了.
更多函数大家可以参考
http://xmlsoft.org/html/libxml-xmlstring.html
分享到:
相关推荐
安装Php5时会提示缺少libxml2 libxml是一个用来解析XML文档的函数库。它用C语言写成, 并且能为多种语言所调用,例如C语言,C++,XSH。C#, Python,Kylix/Delphi,Ruby,和PHP等。Perl中也可以使用XML::LibXML模块。...
Ubuntu11.10 libxml2-dev 安装包 libxml2_2.7.8.dfsg-4_i386.deb libxml2-dev_2.7.8.dfsg-4_i386.deb python-libxml2_2.7.8.dfsg-4_i386.deb zlib1g_1.2.3.4.dfsg-3ubuntu3_i386.deb zlib1g-dev_1.2.3.4.dfsg-3...
开源库libxml2库,
libxml2.so.2
libxml2
最近一段时间,在android上想用c++处理xml数据,在网上找了半天资料,大多数教程都是在编译android系统的时候顺便把libxml2和libiconv源码放到系统指定路径下编译出来。可是没干过这样的事,也不想这么做。最后还是...
libxml2-2.9.8源码及编译方法,libxml2-2.9.8源码及编译方法
Libxml2是一个C语言的XML程序库,可以简单方便的提供对XML文档的各种操作,并且支持XPATH查询,以及部分的支持XSLT转换等功能。libxml2支持读取utf8,gb2312的xml。
libxml2是一个用来解析XML文档的函数库。它用 C 语言写成,并且能被多种语言所调用,如 C、C++、XSH、C#、Python、Kylix、Delphi、Ruby、PHP 等。 注:先解压得到libxml2-2.9.1.tar.gz文件,然后再拷贝到linux系统...
the proper functionning of libxml2 main APIs while testapi does a full coverage check. Report failures to the list. To report bugs, follow the instructions at: http://xmlsoft.org/bugs.html A ...
libxml2是一个用来解析XML文档的函数库。它用 C 语言写成,并且能被多种语言所调用,如 C、C++、XSH、C#、Python、Kylix、Delphi、Ruby、PHP 等。它最初是为 GNOME 开发的项目,但是现在可以用在各种各样的项目中。...
使用xml保存程序的配置 封装了libxml2的一系列函数
将libxml2 2.7.8 代码建立了VS2008编译工程,并增加了15个测试程序代码。确实需要的请下载
目录 介绍 数据类型 解析文件 获取元素内容 用XPath获取元素内容 写入元素内容 写入属性 获取属性 编码转换 A. 编译 B. 例子文档 C. Keyword例子代码 D. Xpath例子代码 E. 添加Keyword的例子代码 F....G....H....I....
The XML C parser and toolkit of Gnome libxml libxml2-2.9.9.tar.gz 安装包
libxml2.rar
由于在windows下玩ruby,导致安装过程中遇见个问题,这个libxml2 64位 安装包,分享都大家。我找了好长时间呢。
libxml2 使用示例, readNode countNode insertNode updateNode deleteNode
LIBXML2相关文档
Libxml2 (2.9.8)库在Windows下的编译批处理文件。将本文件下载到源码目录win32子目录中,然后点击执行即可完成编译。 在执行之前,需要根据实际情况修改批处理中的文件目录。