xml学习
一,数据类型xmlChar
对char的基本代替,是一个UTF-8编码字符串中的一个字节。如果你的数据使用了其他编码,在使用libxml函数前就必须转换为UTF-8。xmlDoc和xmlDocPtr
是一个包含了从解析文档后创建出的树的结构。xmlDocPtr是指向该结构的指针。xmlNode和xmlNodePtr
包含单个节点的结构。xmlNodePtr是指向该结构的指针,它用来遍历文档树。。。。。 二,常用函数xmlDocPtr xmlParseFile(char *filename) // 解析文件char *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine) //获取具体内容 xmlStrcmp(const CHAR *str1, const CHAR *str2)。。。。 三,实例
对char的基本代替,是一个UTF-8编码字符串中的一个字节。如果你的数据使用了其他编码,在使用libxml函数前就必须转换为UTF-8。xmlDoc和xmlDocPtr
是一个包含了从解析文档后创建出的树的结构。xmlDocPtr是指向该结构的指针。xmlNode和xmlNodePtr
包含单个节点的结构。xmlNodePtr是指向该结构的指针,它用来遍历文档树。。。。。 二,常用函数xmlDocPtr xmlParseFile(char *filename) // 解析文件char *xmlNodeListGetString(xmlDocPtr doc, xmlNodePtr list, int inLine) //获取具体内容 xmlStrcmp(const CHAR *str1, const CHAR *str2)。。。。 三,实例
1 { 2 xmlDocPtr doc; 3 xmlChar *value; 4 doc = xmlParseFile(filename); 5 if (NULL == doc) { 6 printf( "[GUI]XML Document '%s' parse error.\n", filename); 7 return -1; 8 } 9 10 xmlNodePtr root = doc->root; 11 if (root == NULL) { 12 printf( "[GUI]XML Document empty\n"); 13 xmlFreeDoc(doc); 14 return -1; 15 } 16 if(doc->encoding) { 17 value = (xmlChar *)doc->encoding; 18 if(0 == xmlStrcmp((const CHAR *)"utf8", (const CHAR *)value)) { 19 printf("[GUI] xml encoding utf8"); 20 } 21 } 22 23 xmlNodePtr cur = root->xmlChildrenNode; 24 while (cur) { 25 if ((!xmlStrcmp(cur->name, (const xmlChar *)"keyword"))) { 26 key = xmlNodeListGetString(cur->doc, cur->xmlChildrenNode, 1); 27 printf("keyword: %s\n", key); 28 xmlFree(key); 29 } 30 cur = cur->next; 31 } 32 return; 33 34 }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步