\du-ddlZddlZdZdZdZdZdZdZdZ d Z Gd d ej j Z Gd d ZGddZGdde ZdZddZddZdS)N START_ELEMENT END_ELEMENTCOMMENTSTART_DOCUMENT END_DOCUMENTPROCESSING_INSTRUCTIONIGNORABLE_WHITESPACE CHARACTERSc~eZdZdZdZddZdZdZdZdZ dZ dZ d Z d Z d Zd Zd ZdZdZdZdZdZdS)PullDOMNcddlm}||_ddg|_|j|_g|_|jj|_ |jj|_n#t$rYnwxYw|dig|_ |j d|_ g|_ dS)Nr) XML_NAMESPACExml) xml.domrdocumentFactory firstEvent lastEvent elementStackappendpushpopAttributeError _ns_contexts_current_contextpending_events)selfrrs ..\python\lib\xml\dom\pulldom.py__init__zPullDOM.__init__s)))))).,%,  (,DHH    D ,E23 $ 1" 5 sA AAc0|jd}|jd=|SNr)r)rresults rrz PullDOM.pop!s"2&  b ! c||_dSN)_locator)rlocators rsetDocumentLocatorzPullDOM.setDocumentLocator&s  r#ct|dsg|_|j|pd|f|j|j|pd|j|<dS)N _xmlns_attrsxmlns)hasattrr*rrrcopy)rprefixuris rstartPrefixMappingzPullDOM.startPrefixMapping)szt^,, # "D    &"3GS!9:::   !6!;!;!=!=>>>%+^tc"""r#cB|j|_dSr%)rrr)rr.s rendPrefixMappingzPullDOM.endPrefixMapping0s $ 1 5 5 7 7r#cd}t|dd}||D]\}}||j||f<g|_|\}} |rV||j|} | r | dz| z}n| }|jr|j||} nO|||} n8|jr|j| } n|d| } |D]\}}|\} } | |kr?| dkr| }nd| z}|j | |}| |n|| rK|j| } | r | dz| z}n| }|j | |}| |n/|j | }| |||_ t| fdg|jd<|jd|_|| dS)Nzhttp://www.w3.org/2000/xmlns/r*:r+zxmlns:)getattr_attrsr*rdocumentcreateElementNS buildDocument createElementitemscreateAttributeNSsetAttributeNodeNScreateAttributesetAttributeNodevaluerrr)rnametagNameattrs xmlns_uri xmlns_attrsanamerAr/ localnamer.nodea_uri a_localnameqnameattrs rstartElementNSzPullDOM.startElementNS3sD3 dND99  " + 9 9 u38 i/00 "D Y  ;.s3($slY6GG'G} 8}44S'BB))#w77} ;}229==))$ :: ;;==  KE%!& E; !!'))'EE${2E}66ueDD''---- ,.u5("SL;6EE'E}66ueDD''----}44[AA%%d+++DJJ+T2D9q* $r#ctt|fdg|jd<|jd|_dSNr5rrr)rrBrCs r endElementNSzPullDOM.endElementNSl2)488::6=q*r#c|jr|j|}n|d|}|D];\}}|j|}||_||sc!"C(("&--! '$$&& &&' 2 22r#cddlm}t|}||}|stj}t |||S)Nr)StringIO)iorlenrrrr)stringrrrrs r parseStringrIs[&kkG (6  C '$$&& #vw / //r#)NNr%)xml.saxrxml.sax.handlerrrrrrrr r rContentHandlerr rrrrrrrr#rrs9  ! 1-  uuuuucg$uuunMMMMMMMM^%%%%%g%%%B! 3 3 3 3000000r#