
뭐 그만큼 신뢰가 있는 Parser란 이야기겠지....
eXpat는 EUC_KR을 지원하지 않기 때문에(요즘은 UTF8/Unicode가 대세인듯) 한글을 사용하려면 iconv 라이브러리등을 이용해서 UTF-8로 변경 후 사용해야 한다.
exPat 링크 : The Expat XML Parser
expat를 이용한 xml 데이터처리 - C
Using Expat
xmltools: command-line tools for XML
대략적인 사용방법은 아래와 같이......
int main(int argc, char **argv) {
// xml 파서를 생성한다.
XML_Parser p = XML_ParserCreate(NULL);
if (! p) {
fprintf(stderr, "Couldn't allocate memory for parser\n");
exit(-1);
}
// xml의 element를 만났을 때 호출될 함수를 등록한다.
// start는 처음태그, end는 마지막 태그를 만났을 때 호출된다.
XML_SetElementHandler(p, start, end);
// 실제 데이터 (예 : <tag>data</tag>의 data)를 처리하기 위해서
// 호출될 함수를 등록한다.
XML_SetCharacterDataHandler(p, parser);
for (;;) {
int done;
int len;
len = fread(Buff, 1, BUFFSIZE, stdin);
if (ferror(stdin)) {
fprintf(stderr, "Read error\n");
exit(-1);
}
done = feof(stdin);
if (! XML_Parse(p, Buff, len, done)) {
fprintf(stderr, "Parse error at line %d:\n%s\n",
XML_GetCurrentLineNumber(p),
XML_ErrorString(XML_GetErrorCode(p)));
exit(-1);
}
if (done) break;
}
printf("\n\n리스트의 크기 : %d\n", user_num);
return 0;
}소스출처 : http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/XML/expat_xml




