expat은 아래와 같은 기본 코드로 작동된다. (링크 참조)
2010/03/23 - [프로그램 사용/expat / XML] - expat-2.0.1 example

문제는 위의 main() 함수에서 fread()를 이용하여 버퍼 사이즈 만큼 읽어오기 때문에
최악의 경우 데이터나 elemet가 잘리는 경우가 발생할수 있다는 것이다.
예를 들어

<entry gd:etag="W/"CUQFRX47eCp7ImA9WxFXF0s."">
    <id>tag:youtube.com,2008:video:qlZjYvHWTo4</id>
    <published>2010-05-19T07:13:31.000Z</published>
    <updated>2010-05-25T04:55:14.000Z</updated>
</entry>

이러한 XML이 있고, "id" 태그의 데이터를 읽으려고 할때 최악의 경우
버퍼의 경계에 걸릴경우,
tag:youtube.com,2008:vide
o:qlZjYvHWTo4
이런식으로 두번을 읽어 오게 된다.

일단은 버퍼를 늘리는 것 외에는 딱히 다른 방법은 찾지 못했다.

'프로그램 사용 > expat & XML' 카테고리의 다른 글

GPX TCX 포맷  (0) 2013.06.22
Javascript DOM API / XML  (2) 2010.07.13
expat으로 smi 자막파일 파싱은 불가?  (0) 2010.05.03
SAX (Simple API for XML)  (0) 2010.04.23
xml 트리 탐색 - XML tree navigation  (0) 2010.04.17
Posted by 구차니