每次写有关xml程序的时候,我都会打开libxml2的主页,因为我总记不住libxml2的那些函数,其实我常用的函数不多,但是总是记不住,无奈, 今天抽空对常用的libxml2函数归拢了下。 int xmlKeepBlanksDefault(int val) //设置是否保留空白节点,默认为1,最好设置为0。 解析 xmlDocPtr xmlParseFile(const char * filename) // 从磁盘解析一个xml文件 xmlDocPtr xmlParseMemory(const char * buffer, int size) // 从内存中解析一个xml文件 xmlDocPtr xmlReadFile(const char * filename, const char * encoding, int options) // 从磁盘解析一个xml文件,能设置解析的编码和选项 根节点相关函数 xmlNodePtr xmlDocGetRootElement(xmlDocPtr doc) // 获取根节点 xmlNodePtr xmlDocSetRootElement(xmlDocPtr doc, xmlNodePtr root); // 设置文档根节点 节点相关函数 xmlNodePtr xmlNewNode(xmlNsPtr ns, const char * name) // 创建新节点 xmlNodePtr xmlNewTextChild(xmlNodePtr parent, xmlNsPtr ns, const xmlChar * name, const xmlChar * content) // 创建并添加一个子节点 xmlNodePtr xmlAddChild(xmlNodePtr parent, xmlNodePtr cur) // 添加一个指定节点 xmlNodePtr xmlCopyNode(const xmlNodePtr node, int extended) //复制当前节点 xmlChar * xmlNodeGetContent(xmlNodePtr cur) // 获取节点值,需要使用xmlFree()释放 void xmlNodeSetContent(xmlNodePtr cur, const xmlChar * content) // 设置节点值 属性相关函数 xmlAttrPtr xmlNewProp(xmlNodePtr node, const xmlChar * name, const xmlChar * value) // 创建新属性 xmlChar * xmlGetProp(xmlNodePtr node, const xmlChar * name) // 读取节点属性,需要用xmlFree()释放 xmlAttrPtr xmlSetProp(xmlNodePtr node, const xmlChar * name, const xmlChar * value) // 设置节点属性 保存 int xmlSaveFormatFileEnc(const char * filename, xmlDocPtr cur, const char * encoding, int format) // 保存xml文件到磁盘,format设置为1,与xmlKeepBlanksDefault(0)配合使用,节点之间有缩进 void xmlDocDumpMemoryEnc(xmlDocPtr out_doc, xmlChar ** doc_txt_ptr, int * doc_txt_len, const char * txt_encoding) // 保存xml文件到内存中,将xml文件转换成string或char *时可以利用该函数 移动 cur = node->xmlChildrenNode; //指向node的孩子节点 cur = node->next; //指向node的下一节点 比较 int xmlStrcmp(const xmlChar * str1, const xmlChar * str2) // 比较,可利用while循环和该函数寻找指定节点
libxml2常用函数
最新推荐文章于 2022-03-11 11:45:09 发布