TinyXML은 이용하기 쉽고 빠른 XML DOM Parser 입니다.
(TinyXML is a simple, small, C++ XML parser that can be easily integrating into other programs.)


1. 특징
#ifdef TIXML_USE_STL
	#include 
 	#include 
	#include 
	#define TIXML_STRING		std::string
#else
	#include "tinystr.h"
	#define TIXML_STRING		TiXmlString
#endif
위 코드는 tinyxml.h의 STL정의부입니다. 코드에서 알수 있듯이 TinyXML 은 STL 을 사용하거나 사용하지 않고 컴파일 할 수 있습니다. 

TinyXML 은 std::string 을 사용하고 std::istream, std::ostream, operator<< 와 operator>> 를 완벽하게 지원합니다. 대부분의 메소드는 'const char*" 혹은 "const std::string&" 형식을 사용하게 됩니다. 

STL 을 사용하지 않는 경우 TinyXML 이 자체적으로 구현한 string 을 사용하며 API 는 "const char*" 형식을 사용하게 됩니다.

STL을 사용할 것이라면 TIXML_USE_STL을 define하면 됩니다.


2. 프로젝트에 링크하기
가장 간단한 방법은 소스를 직접 프로젝트에 포함시키는 것입니다.


위 그림에서 *.h 파일들과 *.cpp 파일들을 자신의 프로젝트에 직접 포함시키면 됩니다.
단, 자신의 프로젝트에서 stdafx.h 파일을 사용하고 있을 경우(미리 컴파일된 헤더 사용) tinyxml의 cpp파일들에 직접 stdafx.h 파일을 include 하던지 또는 해당 아래와 같이 cpp파일들에 대해 미리 컴파일된 헤더 사용하지 않음으로 설정하면 됩니다.



소스코드를 직접 컴파일해 라이브러리를 생성하고 이용하는 방법은 다음과 같습니다.


TinyXML의 솔루션 파일을 열어보면 친절하게도 STL 사용버전과 비사용버전이 나누어진 프로젝트가 보입니다. STL사용 여부에 따라 프로젝트를 선택적으로 빌드하면 됩니다. 별다른 설정과정 필요없이 깔끔하게 빌드가 성공적으로 이루어 집니다.


빌드를 마친 후 출력 디렉토리를 살펴보면 위 그림과 같은 tinyxml.lib라는 정적 라이브러리 파일이 생성된 것을 확인할 수 있습니다. 이제 해당 라이브러리 파일을 자신의 프로젝트에 링크시키고 tinyxml.h 헤더파일 참조시키면 TinyXML을 사용할 수 있습니다.


3. 주의
TinyXML 은 DTDs(Document Type Definitions) 혹은 XSLs(eXtensible Stylesheet Language) 를 파싱하거나 사용할 수 없습니다.


4. 튜토리얼
TinyXML은 매우 사용하기 쉽고 편리합니다. 관련 예제는 검색을 통해 쉽게 찾을수 있습니다.


5. 관련 프로젝트

  • TinyXPath: TinyXPath는 작은 크기의 XPath문법 디코더이며 c++ 로 작성되었습니다.
  • TinyXML++: TinyXML++ 은 c++ 을 사용하여 TinyXML 을 완전히 새로운 인터페이스로 작성한 것입니다.



'프로그래밍 > 오픈소스' 카테고리의 다른 글

SQLite with Eclipse  (1) 2010.05.06
SWF파일 분석 도구  (0) 2010.04.13
boost library 설치  (0) 2010.03.17
libcurl 사용하기  (0) 2010.03.15
SQLite  (3) 2009.09.11
ACE(ADAPTIVE Communication Environment)  (0) 2009.09.03
MySQL++  (0) 2009.08.21
C++ 암복호화 라이브러리 Crypto++  (0) 2009.08.20
C/C++ XML Parser TinyXml  (1) 2009.08.20
HttpClient와 Jericho Parser를 이용한 HTML 파싱  (0) 2009.07.28
GeoIP를 이용한 IP대역별 국가코드 검색  (1) 2009.07.07
Posted by devop

댓글을 달아 주세요

  1. yongca

    좋은내용이라 퍼가요

    2011.11.15 01:08 [ ADDR : EDIT/ DEL : REPLY ]