<element1 type="type1" name="value1">
<start play="no"/>
<element2 aaa="AAA"/>
<element2 bbb="BBB"/>
<element3 ccc="CCC">
<element4/><!-- play="no"/>-->
</element3>
</element1>
我使用以下代码来解析它:
int parse( const char *xml) {
printf("Entered\n");
xmlDoc *doc = NULL;
doc = xmlReadFile(xml, NULL, 0);
if (doc == NULL)
printf("Could not parse file\n");
else {
printf("Success\n");
xmlFreeDoc(doc);
}
xmlCleanupParser();
return 0;
}
但我得到以下错误:
Entered
I/O warning : failed to load external entity "<element1 type="type1" name="value1">
<start play="no"/>
<element2 aaa="AAA"/>
<element2 bbb="BBB"/>
<element3 ccc="CCC">
<element4/><!-- play="no"/>-->
</element3>
</element1>
"
Could not parse file
答案 0 :(得分:2)
我相信
的第一个论点xmlReadFile(xml, NULL, 0);
是文件的名称,而不是XML字符串本身。该错误消息表明您已将实际的XML传递给该方法。我相信有一种xmlReadMemory()
方法可以满足您的需求。