블로그는 귀차니즘

First Sensation
  • 공지
  • 지역로그
  • 태그
  • 방명록

HTML Parser - XHTML 변환 파싱

Library 2008/02/23 20:24 귀차니스트
  대학교 3학년이 끝나는 2006년 12월 26일 병역특례를 하게 되었죠. 입사를 하고 나서 한 달이란 짧은 수습기간 동안 프로그램을 만들게 되었는데 그 중 필요했던 기능이 HTML Parsing 부분이었습니다. 그래서 W3C에서 공개 중인 Tidy 라이브러리를 이용한 HTML Parser를 개발하게 되었죠.
  흔히 말하는 HTML이라는 것이 Well-Formed 문서만 존재하면 좋지만 태그가 덜 닫힌 경우, 태그의 순서가 서로 얽혀있는 경우도 있기 때문에 바로 Pasing만 하는 것은 문제가 많습니다. 그래서 Tidy를 이용 HTML 을 XHTML 이나 XML 형식문서로 컨버팅 할 필요가 생기는 것이죠.
  이 라이브러리를 사용하여 XHTML, XML 문서로 컨버팅이 끝나게 되면 Parsing 과정은 말도 안 되게 쉬워집니다. XHTML, XML 이 XML Paser에서 인식이 될 수 있기 때문이죠, 저 같은 경우는 당시 필요한 부분이 그렇게 없었기 때문에 XPath를 이용한 함수들만 제작하여 사용하였습니다. 지금 생각하면 부족한 부분도 없지 않아 많군요^^.
  그런데 이 Tidy라는 라이브러리가 그 당시엔 그렇게도 골치를 썩혔답니다. 왜냐하면 흔히 HTML 문서에 한글이 포함되어있을 때 raw 라던가 자세히 기억나지는 않지만 euc-kr 변환을 하여야 하는데 공백을 나타내는 단어인 &nbsp; 이 포함되어있을 경우 때때로 이 단어의 태그 오픈 '<' 문자가 사라지는 문제점도 있었을 뿐더러 XML의 declaration인 <?xml version="1.0" encoding="euc-kr" ?> 부분이 euc-kr 로 세팅할 수 없어서( 제가 찾지 못했을 수도 있습니다. ) XML 파서에서 한글을 제대로 인식하지 못하는 경우까지 생기더군요.
  뭐 어쩔 수 없이 String 문자를 수동으로 붙이는 등의 꼼수를 동원하고서 원하는 결과를 얻었습니다. 물론 이렇게 만든 것을 사용하고 말았죠. 뭐 이런저런 추억을 잠기게 하는 것이긴 합니다만 필요할 때는 좀 더 좋게 만들어봐야겠습니다.

필요라이브러리 : MSXML Parser SDK 6.0
HtmlParser.rar
크리에이티브 커먼즈 라이센스
Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-동일조건변경허락 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.

"Library" 분류의 다른 글

IPangYa - 팡야 계산기 라이브러리 (0)2008/02/21
2008/02/23 20:24 2008/02/23 20:24
TAG HTML, HTML Parser, HTML 파서, XHTML, XML
받은 트랙백이 없고, 댓글이 없습니다.

트랙백 주소 :: http://www.filewiki.net/tc/trackback/15

댓글을 달아 주세요

◀ 이전페이지 1 다음페이지 ▶

블로그 이미지
First Sensation 귀차니스트
rss
  • 관리자
  • 글쓰기

카테고리

  • 전체 (118)
    • Computer (3)
    • Language (14)
    • Reverse Engineering (1)
    • Algorithm (9)
    • TopCoder (3)
    • Library (2)
    • Programming (21)
    • Programming Tip (9)
    • PSP-Programming (10)
    • Program (5)
    • Small Talk (33)
    • Document (4)
    • OS Develope (4)

최근에 올라온 글

  • Script Interpreter - b....
  • VirtualHttpServer - 가.... (2)
  • 음.. 여러가지 일이 있.... (2)
  • 어후.. 드디어 인터럽트....
  • Kernel Image에 어이없....

최근에 달린 댓글

  • 헠 ㅋ 다음에도 들러주세용 ㅋㅋ. 귀차니스트 03/09
  • ㅎㅎ RSS로 첨 온 글이네.ㅋ. 당구리 02/22
  • 음.. 한글화 파일 0.5 버젼은.... 귀차니스트 02/22
  • 관리자만 볼 수 있는 댓글입.... 비밀방문자 01/30
  • 어떤 의미이신지 잘 모르겠네.... 귀차니스트 01/23

달력

«   2010/03   »
일 월 화 수 목 금 토
  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      

링크

  • kkamagui 프로그래밍 세상.
  • runner님의 이글루.
  • 당구리의 마굿간.
  • 동우fly.
  • 류광의 번역 이야기.
  • 서광열의 프로그래밍 언....
  • 준호씨의 블로그.
  • 최익필의 이름없는 블로그.
  • 위키는 귀차니즘.

최근에 받은 트랙백

  • 한게임 테트리스 인공지.... 고니's Life 2009
  • ACM 706 (Uva ID) : LCD.... 알고리즘 트레이닝 : Oh... 2009
  • 문제 4 : LCD 디스플레.... 최익필의 이름없는 블로그 2009
  • 궁극의 예외처리. 이름없는 블로그 2008
  • Maximum sum. 티스토리 지점 2008

글 보관함

  • 2010/03 (1)
  • 2010/02 (1)
  • 2010/01 (1)
  • 2009/12 (3)
  • 2009/08 (1)

태그목록

  • boost::array
  • QT4
  • Ribbon UI
  • Dynamic Programming
  • Gradient
  • 테트리스
  • 개발일지
  • Warcraft III
  • interface design guide
  • STL
  • RLE
  • Codegear
  • 파이널 데이터
  • RCW
  • XHTML
  • LZSS
  • 컬러체험단
  • Mouse Message
  • istream_iterator
  • HP
  • HTML 파서
  • As Casting
  • Rest
  • 한글화
  • 분양
  • Newline
  • OTF
  • FTP
  • 프로토타입
  • IPangYa

지역로그 : 태그 : 방명록 : 관리자 : 글쓰기
귀차니스트’s Blog is powered by Textcube 1.7.5 : Risoluto / Designed by DesignNia.net