0

多くのファイルを処理したいので、これを xml.l の最後に追加します。

int ParseXml(char *s)
{
    int err = 0;
    XMLin = fopen(s, "r");

    if (!XMLin) {
        puts("Error on XML file opening\n");
    } else {
        XML_switch_to_buffer( XML_create_buffer( XMLin, YY_BUF_SIZE ) );
        err = XMLparse();
        XML_delete_buffer( YY_CURRENT_BUFFER );
        fclose(XMLin);
    }

    return err;
}

最初の実行では機能しますが (0 を返します)、2 回目の呼び出しでは失敗します (1 を返します)。フレックスマニュアルによると、うまくいくはずです!

私は何を間違えましたか?

4

1 に答える 1

0

私は解決策を見つけました:

int ParseXml(char *s)
{
    int err = 0;
    XMLin = fopen(s, "r");

    if (!XMLin) {
        puts("Error on XML file opening\n");
    } else {
        err = XMLparse();
        fclose(XMLin);
        XMLlex_destroy();
    }

    return err;
}
于 2013-04-12T16:14:42.987 に答える