2011-04-12 2 views
2

O'Reilly의 Python and XML에서 Python의 SAX 모듈을 배우려고합니다. 다음 샘플 코드를 실행하려고하는데 오류가 계속 발생하며 이유를 파악할 수 없습니다.ContentHandler가 정의되지 않았습니다.

첫 번째 파일은 handlers.py입니다 :

class ArticleHandler(ContentHandler): 
    """ 
    A handler to deal with articles in XML 
    """ 

    def startElement(self, name, attrs): 
     print "Start element:", name 

두 번째 파일은 첫 번째 파일 가져 art.py이다 : 나는 art.py를 실행하려고하면

#!/usr/bin/env python 
# art.py 

import sys 

from xml.sax import make_parser 
from handlers import ArticleHandler 

ch = ArticleHandler() 

saxparser = make_parser() 
saxparser.setContentHandler(ch) 
saxparser.parse(sys.stdin) 

, 나는 다음을 얻을 :

% python art.py < article.xml 
Traceback (most recent call last): 
    File "art.py", line 7, in <module> 
    from handlers import ArticleHandler 
    File "~/handlers.py", line 1, in <module> 
    class ArticleHandler(ContentHandler): 
NameError: name 'ContentHandler' is not defined 

나는 분명히 분명하지 않은 부분이 있습니다. 아무도 도와 줄 수 있니?

감사합니다.

from xml.sax.handler import ContentHandler 

이 그것을해야 다음과 같이

답변

3

당신은 handlers.py에서의 ContentHandler를 가져올 수 있습니다.

+1

감사! 그게 효과가 있었어. (어쨌든, 나는이 책의 정오표를 놓쳤다. 그러나 여기에있다 : http://oreilly.com/catalog/errata.csp?isbn=9780596001285) –

+0

아, 매우 유용한 링크, 고마워. – AndroidDebaser