C语言解析XML文件实现起来很麻烦,最简单地做法是使用开源的LIBXML2库。
int ReadConfig(char *file_name,char *key, char val[]) { xmlChar *psXml = NULL; char xmlPath[1024] = "/CONFIG/"; xmlXPathContextPtr pXmlContext = NULL; xmlXPathObjectPtr pXPathObject = NULL;
xmlDocPtr pXmlDoc = NULL; pXmlDoc = xmlReadFile(file_name, NULL, 0); if(pXmlDoc == NULL) { return -1; } strcat(xmlPath, key); pXmlContext = xmlXPathNewContext(pXmlDoc); if(pXmlContext == NULL) { return -1; } pXPathObject = xmlXPathEvalExpression((xmlChar *)xmlPath, pXmlContext); if(pXPathObject == NULL) { xmlXPathFreeContext(pXmlContext); return -1; } xmlXPathFreeContext(pXmlContext); if(pXPathObject->nodesetval->nodeNr > 0) { psXml = xmlNodeGetContent(pXPathObject->nodesetval->nodeTab[0]); if(psXml != NULL) { strcpy(val, (char *)psXml); } } xmlXPathFreeObject(pXPathObject); xmlFreeDoc(pXmlDoc); return 0; }
|
阅读(644) | 评论(0) | 转发(0) |