ó \STc @sOdZddlmZmZddlmZmZmZddlm Z m Z ddl m Z ddl mZmZeZdefd„ƒYZd dd „ƒYZd „Zed krKdd lZddl mZddlmZddlmZddlmZmZmZmZeZ eZ!eZ"eZ#ej$dZ%ej&ƒZ'e(e%ƒZ)e'j*e)ƒZ+dGe+Ge+j,GHee+ƒxÌddddfD]µ\Z-Z.Z/Z0x eƒe+fedgƒe)fedgƒe)ffD]h\Z1Z2e2e+k rÿe(e%ƒZ2nee1e2e e-fe!e.ffe"e/fe#e0ffƒe)j3ƒqØWqWnd S(sc parser to generate SAX events from a DOM tree $Date: 2002/05/02 10:15:04 $ by $Author: loewis $ iÿÿÿÿ(tSAXNotSupportedExceptiontSAXNotRecognizedException(t XMLReadertAttributesNSImpltAttributesImpl(tLexicalHandlert DeclHandler(thandler(tNodetXMLNS_NAMESPACEt Dom2SaxParsercBs_eZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z d„Z d „Z RS( sm Generate SAX events from a DOM tree handle _ feature_namespaces _ feature_namespace_prefixes, _ property_lexical_handler _ property_declaration_handler (not yet fully) differences with standard sax parser: _ no error handling (we start from a dom tree !!) _ no locator (same reason) cCsDtj|ƒtƒ|_tƒ|_d|_d|_d|_dS(Nii( Rt__init__Rt _lex_handlerRt _decl_handlert_nst_ns_prfxt_parsing(tself((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Dom2Sax.pyR s      cCs@|tjkr|jS|tjkr,|jStd|ƒ‚dS(NsFeature '%s' not recognized(Rtfeature_namespacesRtfeature_namespace_prefixesRR(Rtname((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Dom2Sax.pyt getFeature#s cCsb|jrtdƒ‚n|tjkr3||_n+|tjkrN||_ntd|ƒ‚dS(Ns!Cannot set features while parsingsFeature '%s' not recognized(RRRRRRRR(RRtstate((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Dom2Sax.pyt setFeature+s   cCs@|tjkr|jS|tjkr,|jStd|ƒ‚dS(NsProperty '%s' not recognized(Rtproperty_lexical_handlert_lex_handler_proptproperty_declaration_handlert_decl_handler_propR(RR((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Dom2Sax.pyt getProperty7s cCsb|jrtdƒ‚n|tjkr3||_n+|tjkrN||_ntd|ƒ‚dS(Ns#Cannot set properties while parsingsProperty '%s' not recognized(RRRRR RR R(RRtvalue((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Dom2Sax.pyt setProperty?s   cCs_|jrtdƒ‚nd|_|jr9|j|_n |j|_|j|ƒd|_dS(NsAsk for parse while parsingii(RRRt _element_nst _element_t_elementt _from_dom(Rtdom((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Dom2Sax.pytparseLs     cCs„x}|r|j}|tjkr1|j|ƒnB|tjkrV|jj|jƒn|tjkr|jj |j |jƒnò|tj kr½|jj ƒ|j |jƒ|jjƒn¶|tjkr x¤|jD]0}|jj ƒ|j |jƒ|jjƒqÖWnf|tjkrL|jjƒ|jj|jƒ|jjƒn'|tjkrq|jj|jƒn|tjkr+|jj|j|j|jƒxyt|jjƒD]e}|jj |ƒ}|jsÜ|jrþ|j!j"|j#|j|jƒq²|j!j"|j|j$ƒq²W|jj%ƒnH|tj&krs|jj'|j(ƒ|j |jƒ|jj)|j(ƒn|j*}qWdS(N(+tnodeTypeRt ELEMENT_NODER t TEXT_NODEt _cont_handlert characterstdatatPROCESSING_INSTRUCTION_NODEtprocessingInstructionttargett DOCUMENT_NODEt startDocumentR"t firstChildt endDocumenttDOCUMENT_FRAGMENT_NODEt childNodestCDATA_SECTION_NODER t startCDATAtendCDATAt COMMENT_NODEtcommenttDOCUMENT_TYPE_NODEtstartDTDRtpublicIdtsystemIdtrangetentitiestlengthtitemR texternalEntityDeclt notationNameRtendDTDtENTITY_REFERENCE_NODEt startEntitytnodeNamet endEntityt nextSibling(Rtnttypetite((sG/opt/freeware/lib64/python2.7/site-packages/_xmlplus/dom/ext/Dom2Sax.pyR"XsL       cCs||j}i}x$|jƒD]}|j||jsB¥?   "    %" 7