/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Mere expat
Fra : Jakob Møbjerg Nielse~


Dato : 20-11-03 10:58

Min Expat bliver ved med at meddele "junk after document element". Jeg har
prøvet forskellige encodings, og jeg er sikker på at bufferen er
nul-termineret. Er der nogle Expat hajer der kan give et tip eller to?


-----Kildekode-----
#include <stdio.h>
#include <expat.h>

void startElement(void *userData, const char *name, const char **atts)
{
printf("Got element: %S\nwith userData:\n%s\n", name, (char *)userData);
}

void endElement(void *userData, const char *name)
{
}

int main(int argc, char *argv[])
{
FILE *fp;
char *buffer;
char *prog = argv[0];
long fsize;
XML_Parser parser;
int userData = 0;
int done;

if(argc == 1) return 0;

if ((fp = fopen(*++argv, "r")) == NULL) {
fprintf(stderr, "%s: Can't open %s", prog, *argv);
exit(1);
} else {
fseek(fp, 0, SEEK_END);
fsize = ftell(fp);
rewind(fp);

buffer = (char *)malloc(fsize+1);

if (buffer == NULL)
exit(2);

fread(buffer, 1, fsize, fp);

buffer[fsize] = '\0';

printf("%s\n", buffer);

fclose(fp);

parser = XML_ParserCreate((XML_Char *)"ISO-8859-1");
XML_SetUserData(parser, &userData);
XML_SetElementHandler(parser, startElement, endElement);
do {
done = fsize < sizeof(buffer);
if (!XML_Parse(parser, buffer, fsize, 0)) {
fprintf(stderr,
"%s at line %d\n",
XML_ErrorString(XML_GetErrorCode(parser)),
XML_GetCurrentLineNumber(parser));
return 1;
}
} while (!done);

XML_ParserFree(parser);

}

return 0;
}
-------------------

-----XML input-----
<?xml version="1.0" ?>
<a>
</a>

-------------------

/Jakob



 
 
Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31964
Nyheder : 719565
Indlæg : 6408183
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste