libxml2
是一个功能强大的 XML
解析和处理库,提供了多种处理 XML
文件的方式。
常用的头文件
libxml2
库的功能涵盖了 XML
文档解析、树形操作、XPath
查询等多个领域。不同的头文件对应不同的功能模块。
<libxml/parser.h>
该头文件包含了 XML
解析器相关的功能。它提供了用于解析 XML
文档的函数,如 xmlParseFile、xmlParseMemory、xmlNewDoc
等。这是与 XML
文件解析直接相关的核心功能。
常用函数:
xmlParseFile(const char *filename)
:解析文件并返回一个 XML
文档树。
xmlParseMemory(const char *mem, int size)
:解析内存中的 XML
数据。
xmlDocGetRootElement(xmlDocPtr doc)
:获取 XML
文档的根节点。
<libxml/tree.h>
这个头文件包含了 XML
文档树操作的相关函数和数据结构,特别是对节点的操作,比如插入、删除、查找等。
常用结构:
xmlNode
:表示 XML
文档中的节点。xmlNodePtr
是该结构的指针类型。(好用,多用)
常用函数:
xmlNewNode()
:创建一个新的节点。
xmlAddChild()
:将子节点添加到父节点。
xmlFindNode()
:查找某个节点。
<libxml/xpath.h>
该头文件提供了对 XPath
查询的支持。XPath
是一种用于查找 XML
文档中信息的语言,libxml2
支持 XPath
查询操作。
常用函数:
xmlXPathEvalExpression()
:评估 XPath
表达式。
xmlXPathFreeContext()
:释放 XPath
上下文。
xmlXPathFreeObject()
:释放 XPath
查询结果对象。
<libxml/xmlschemas.h>
这个头文件包含了对 XML Schema
的支持,用于验证 XML
文档是否符合某个XML Schema
的定义。它提供了与XML Schema
相关的函数。
常用函数:
xmlSchemaValidateDoc()
:验证整个 XML
文档是否符合指定的 XML Schema
。
xmlSchemaValidateFile()
:验证文件中的 XML 数据。
<libxml/uri.h>
提供 URI
解析和操作的功能。URI
是资源标识符,在解析 XML
文档时,可能需要处理 URI
以便访问外部资源(如通过xlink
引用的资源)。是URI不是URL,感觉下一个就可以写这个
常用函数:
xmlParseURI()
:解析 URI
。
<libxml/xmlmemory.h>
用于内存分配和管理的函数,提供了专门用于 XML
处理的内存分配函数。
常用函数:
xmlMalloc()
:分配内存。
xmlFree()
:释放内存。
常用的结构和数据类型
xmlDoc:
这是整个 XML
文档的表示结构,xmlDocPtr
是指向该结构的指针类型。它是操作 XML
文档的主要入口点。
xmlNode:
xmlNode
结构代表 XML
文档中的单个节点(元素、文本节点、注释、属性等)。节点可以是根节点、子节点或叶子节点。xmlNodePtr
是指向 xmlNode
结构的指针类型。
xmlXPathContext 和 xmlXPathObject:
用于执行 XPath
查询的上下文和结果对象,xmlXPathContext
用于存储 XPath
查询所需的状态信息,xmlXPathObject
则保存查询的结果。