0
<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
4

1 に答える 1

2

私は最初の議論を信じています

xmlReadFile(xml, NULL, 0);

XML文字列自体ではなく、ファイルの名前です。エラーメッセージは、実際のXMLをメソッドに渡したことを示しています。xmlReadMemory()あなたのニーズに合った方法があると思います。

于 2012-05-08T04:37:30.967 に答える