1

私は次のコードを持っています:

#include <stdio.h>
#include <string.h>
#define MAX 419430400
#define CHR 50
#define INT 2000

FILE *doc;
char *path;


int BITE, LOOP;
int DOCUMENT[MAX];
int LENGTH = 0;


struct XmlNode {
    char Tags[CHR];
    char InnerText[INT];
    char Atributes[CHR];
};
typedef XmlNode;

void LoadXml (char _path[200]) {
    LOOP = 0;
    path = _path;
    doc = fopen(path,"r+");
    do {
        BITE = fgetc(doc);
        DOCUMENT[LOOP] = BITE;
        LOOP++;
    } while(!feof(doc));
    LENGTH = LOOP - 1;
}
void CloseXml (char _path[200]) {
    path = NULL;
    fclose(doc);
}
void SaveXml (char _path[200]) {
    LOOP = 0;
    FILE *save = fopen(_path,"w+");
    for (LOOP = 0; LOOP < LENGTH; LOOP++) {
        fprintf(save,"%c",(char)DOCUMENT[LOOP]);
    }
    fclose(save);
}
void PrintXml () {
    LOOP = 0;
    for (LOOP = 0; LOOP < LENGTH; LOOP++) {
        printf("%c",(char)DOCUMENT[LOOP]);
    }
}
void AppendChild(XmlNode _node, XmlNode _child)
{
    char _tagBeggin[CHR+2], _tagEnd[CHR+3];
    _tagBeggin[0] = '<';
    _tagEnd[0] = '<';
    _tagEnd[1] = '/';
    for (LOOP = 0; LOOP < strlen(_child->InnerText); LOOP++){

    }
}   

AppendChild プロシージャで、次のような値にアクセスしようとしたときにエラーが表示されます: _child.InnerText、同じエラー。

Error: request for member 'InnerText' in something not a structure or union.

プログラムは宿題として役立ちます。アイデアは、ライブラリを使用せずに、自分用にxmlファイルで動作するプログラムを作成することです。そして、私は自分のものを作ることにしました。だからここに私が作ったものがあります。

AppendChild 関数には、既存の XmlNode を新しいものに含める必要があります。

助けてくれてありがとう。:)

4

1 に答える 1