读书人

windows平台上C语言用libxml2解析

发布时间: 2012-03-22 17:43:57 作者: rapoo

windows平台上,C语言,用libxml2解析xml文件遇到的问题

C/C++ code
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <libxml/xmlmemory.h> #include <libxml/parser.h> void parseStory (xmlDocPtr doc, xmlNodePtr cur) {     xmlChar *key;     cur = cur->xmlChildrenNode;     while (cur != NULL) {         if ((!xmlStrcmp(cur->name, (const xmlChar *)"keyword"))) {             key = xmlNodeListGetString(doc, cur->xmlChildrenNode, 1);             printf("keyword: %s\n", key);             xmlFree(key);         }         cur = cur->next;     }     return;}static void parseDoc() {     xmlDocPtr doc ;          [color=#FF0000]//在这边doc的地址是x0cccccccc[/color]    xmlNodePtr cur;          [color=#FF0000]//在这边cur的地址也是x0cccccccc[/color]    doc = xmlParseFile("D:\\test.xml");    [color=#FF0000]//在这边doc的地址是x0ffffffff[/color]         if (doc == NULL ) {         printf("Document not parsed successfully. \n");         return;     }     cur = xmlDocGetRootElement(doc);        [color=#FF0000]//程序运行到这儿就出错了[/color]    if (cur == NULL) {         fprintf(stderr,"empty document\n");         xmlFreeDoc(doc);         return;     }     if (xmlStrcmp(cur->name, (const xmlChar *) "story")) {         printf("document of the wrong type, root node != story");         xmlFreeDoc(doc);         return;     }     cur = cur->xmlChildrenNode;     while (cur != NULL) {         if ((!xmlStrcmp(cur->name, (const xmlChar *)"storyinfo"))){         parseStory (doc, cur);         }     cur = cur->next;     }     xmlFreeDoc(doc);     return; } int main() {     parseDoc ();     return (1); }


这段程序是在网上找的示例程序,编译链接都正确也没有警告,但是就是运行不起来,单步之后,发现指针的地址很奇怪,不知这段程序问题到底出在哪里,请高手指教!感激不尽啊!





[解决办法]
不知道,帮你顶吧。

读书人网 >C语言

热点推荐