|
|
测试用的代码:
- #include <stdio.h>
- #include <expat.h>
- #define BUFFSIZE 8192
- char Buff[BUFFSIZE];
- int Depth;
- static void XMLCALL
- start(void *data, const char *el, const char **attr)
- {
- int i;
- for (i = 0; i < Depth; i++)
- printf(" ");
- printf("%s", el);
- for (i = 0; attr[i]; i += 2) {
- printf(" %s='%s'", attr[i], attr[i + 1]);
- }
- printf("\n");
- Depth++;
- }
- static void XMLCALL
- end(void *data, const char *el)
- {
- Depth--;
- }
- int
- main(int argc, char *argv[])
- {
- FILE *fp;
- fp = fopen(argv[1],"r+b");
- XML_Parser p = XML_ParserCreate(NULL);
- if (! p) {
- fprintf(stderr, "Couldn't allocate memory for parser\n");
- exit(-1);
- }
- XML_SetElementHandler(p, start, end);
- for (;;) {
- int done;
- int len;
- len = fread(Buff, 1, BUFFSIZE, fp);
- if (ferror(fp)) {
- fprintf(stderr, "Read error\n");
- exit(-1);
- }
- done = feof(fp);
- if (XML_Parse(p, Buff, len, done) == XML_STATUS_ERROR) {
- fprintf(stderr, "Parse error at line %d:\n%s\n",
- XML_GetCurrentLineNumber(p),
- XML_ErrorString(XML_GetErrorCode(p)));
- exit(-1);
- }
- if (done)
- break;
- }
- return 0;
- }
复制代码
我所得的输出如下:
就是显示不出来实际的值。不知何故,还清有经验的朋友指教下。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|