2012-01-12 6 views
0

xsl 스타일 시트를 사용하여 xml 파일을 구문 분석하고 html로 변환하는 워퍼를 작성하려고합니다. 성공하지libxml2 parserError 예외를 파이썬으로 처리하는 방법

Exception in Tkinter callback 
Traceback (most recent call last): 
    File "C:\Python27\lib\lib-tk\Tkinter.py", line 1410, in __call__ 
    return self.func(*args) 
    File "C:\Users\USER\Desktop\raportowanie\topsurv raport_beta01\_newest\transmutation  for trimble\testing_transmutation_v.0.6.2.py", line 712, in btnConvertClick 
    doc = libxml2.parseFile(filename) 
    File "C:\Python27\lib\site-packages\libxml2.py", line 1279, in parseFile 
    if ret is None:raise parserError('xmlParseFile() failed') 
parserError: xmlParseFile() failed 


및 시도 : 깨진 XML 입력 파일의 경우 나는 예외가 사실상

try: 
    doc = libxml2.parseFile(filename) 
except (libxml2.parserError, TypeError): 
    print 'error' 

내가 성공 것처럼 예외 파서 beahaves를 얻을 수 없습니다.
본인에게 도움을 요청하고 싶습니다.

+0

코드가 for-loop 내에서 실행되고 있습니까? 'break'는 무엇입니까? – thesamet

+0

올바른 XML이 아니기 때문에 문서를 파싱 할 수 없습니다. 적절한 XML이 아닌 경우 어떤 일이 일어나길 원하십니까? HTML이 적합하지 않기 때문에 HTML을 만들 수 없습니다. XML이 좋지 않을 때 무엇을하고 싶습니까? –

+0

입력 파일이 단순히 손상되었다는 사실을 사용자에게 알려 드리고 싶습니다. – daikini

답변

1

잘못된 형식의 XML을 구문 분석 할 수 있으므로 BeautifulSoup을 사용하는 것이 좋습니다.

사실, 기능 목록의 첫 번째 일이다 : 당신이 그것을 나쁜 마크 업을 주면

아름다운 수프가 질식하지 않습니다. 원본 문서와 비슷한 정도의 구문 분석 트리를 만듭니다. 일반적으로 필요한 데이터를 수집하여 도망 가기에 충분합니다.

+0

답장을 보내 주셔서 감사합니다. 기꺼이 시도하지만 현재 입력에 나쁜 마크 업이있는 경우 프로그램에서 구문 분석을하지 않을 것입니다. – daikini

관련 문제