expat은 아래와 같은 기본 코드로 작동된다. (링크 참조)
2010/03/23 - [프로그램 사용/expat / XML] - expat-2.0.1 example
문제는 위의 main() 함수에서 fread()를 이용하여 버퍼 사이즈 만큼 읽어오기 때문에
최악의 경우 데이터나 elemet가 잘리는 경우가 발생할수 있다는 것이다.
예를 들어
이러한 XML이 있고, "id" 태그의 데이터를 읽으려고 할때 최악의 경우
버퍼의 경계에 걸릴경우,
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
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 |