ó 4@->c@sÊdZdZddlmZddlmZmZddlmZm Z ddl m Z m Z yddl Z d„ZWn*ek r£dd lmZd „ZnXd ee fd „ƒYZd „ZdS(s_ SAX2 driver for the sgmlop parser. $Id: drv_sgmlop.py,v 1.7 2003/01/21 12:42:28 loewis Exp $ s0.1iÿÿÿÿ(t SGMLParser(tsaxlibthandler(tAttributesImplt XMLReader(tContentGeneratortprepare_input_sourceNcCs>y%tj|ƒd}||ƒdSWntk r9|SXdS(Nii(tcodecstlookupt LookupError(tstrtencodingtdecoder((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyt to_xml_strings  (twstringcCs6tjtjƒdkr|Stj||ƒjƒSdS(Nsutf-8(tstringtlowertselft _encodingRtdecodetutf8(R R ((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyR st SaxParsercBs‰eZdZddd„Zd„Zd„Zd„Zd„Zd„Zd „Z d „Z d „Z d „Z d „Z d„Zd„ZRS(s Implements IncrementalReader isUTF-8cCsBtj|ƒtj|ƒ||_d|_||_d|_dS(Ni(Rt__init__Rt_bufsizetNonet_lexical_handlerRtdocumentStarted(RtbufsizeR ((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyR#s      cCswt|ƒ}|j|ƒ|jƒ}|j|jƒ}x/|dkrh|j|ƒ|j|jƒ}q:W|jƒdS(Nt(Rt prepareParsert getByteStreamtreadRtfeedtclose(Rtsourcetfiletbuffer((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pytparse+s    cCs6|js"|jjƒd|_ntj||ƒdS(Ni(Rt _cont_handlert startDocumentRR (RR$((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyR 6s   cCsdS(N((RR"((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyR<scCstj|ƒ|jjƒdS(s´This method is called when the entire XML document has been passed to the parser through the feed method, to notify the parser that there are no more data. This allows the parser to do the final checks on the document and empty the internal data buffer. The parser will not be ready to parse another document until the reset method has been called. close may raise SAXException.N(RR!R&t endDocument(R((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyR!@s cCsFi}|jd„}x*|D]"\}}||ƒ|||ƒPs(R(Rt attr_listtdtcvrttatb((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyt_make_attr_dictNs cCs2|jjt||jƒt|j|ƒƒƒdS(N(R&t startElementR RRR0(Rttagtattrs((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pytunknown_starttagUscCs |jjt||jƒƒdS(N(R&t endElementR R(RR2((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pytunknown_endtagYscCs |jjt||jƒƒdS(N(R&t charactersR R(Rtdata((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyt handle_data\scCs |jjt||jƒƒdS(N(R&t skippedEntityR R(Rtentity((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pytunknown_entityref_scCs2|jdk r.|jjt||jƒƒndS(N(RRtcommentR R(RR8((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pythandle_commentbscCsJ|tjkr||_n+|tjkr6||_ntd|ƒ‚dS(NsProperty '%s' not recognized(Rtproperty_lexical_handlerRtproperty_encodingRtSAXNotRecognizedException(Rtnametvalue((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyt setPropertyfs   cCs@|tjkr|jS|tjkr,|jStd|ƒ‚dS(NsProperty '%s' not recognized(RR?RR@RRA(RRB((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyt getPropertyms (t__name__t __module__t__doc__RR%R RR!R0R4R6R9R<R>RDRE(((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyR s          cCstƒS(N(R(((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyt create_parser‚s(RHtversiontxml.parsers.sgmllibRtxml.saxRRtxml.sax.xmlreaderRRtxml.sax.saxutilsRRRR t ImportErrortxml.unicode.iso8859RRRI(((sM/opt/freeware/lib/python2.7/site-packages/_xmlplus/sax/drivers2/drv_sgmlop.pyts    b