마음의 안정을 찾기 위하여 - The Expat XML Parser
2400670
27
406
관리자새글쓰기
태그위치로그방명록
별일없다의 생각
dawnsea's me2day/2010
색상(RGB)코드 추출기(Color...
Connection Generator/2010
최승호PD, '4대강 거짓말 검...
Green Monkey**/2010
Syng의 생각
syng's me2DAY/2010
천재 작곡가 윤일상이 기획,...
엘븐킹's Digital Factory/2010
The Expat XML Parser
리눅스/리눅스 프로그래밍 | 2010/03/23 11:41
구차니님의 블로그를 통해 알게된 C로 만들어진 XML Parser

사용자 삽입 이미지
Python을 사용하지 않아서 잘 모르겠지만, 구차니님의 설명대로라면 Python 2.6에서는 eXpat를 XML 기본 파서로 내장하고 있다고 한다.

뭐 그만큼 신뢰가 있는 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


2010/03/23 11:41 2010/03/23 11:41
Article tag list Go to top
View Comment 1
Trackback URL :: 이 글에는 트랙백을 보낼 수 없습니다
From. 구차니 2010/03/24 11:23
답글달기삭제
위에 보시면 handler로 start와 end 함수가 있어야 하는데
joinc 쪽은 작성하다 말아서 그 내용이 눈에 명확하게 들어오지 않더라구요
오늘 찾아보니 DOM 구조로 만들어 주는 SCEW (Simple C Expat Wrapper) 라는 넘이 있어서
한번 문서를 보는 중이랍니다.

http://www.nongnu.org/scew/


음.. 신뢰성은 모르겠고, open source 중에서 C언어용 XML 파서가 이넘밖에 검색이 안되요 ㅠ.ㅠ
PREV : [1] : NEXT
 
 
 
 
: [1] ... [291][292][293][294][295][296][297][298][299] ... [1323] :
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
전체 (1323)
출판 준비 (0)
My-Pro... (41)
사는 ... (933)
블로그... (22)
My Lib... (32)
게임 ... (23)
개발관... (3)
Smart ... (1)
Delphi (93)
C Builder (0)
Object... (0)
VC, MF... (10)
Window... (1)
Open API (3)
Visual... (0)
Java, JSP (2)
ASP.NET (0)
PHP (6)
Database (12)
리눅스 (29)
Windows (25)
Device... (1)
Embedded (1)
게임 ... (0)
Web Se... (2)
Web, S... (21)
잡다한... (7)
프로젝트 (0)
Personal (0)
대통령... (13)
Link (2)