;gQc@sdZddlmZddlmZddlmZmZddlmZm Z dej fdYZ dZ d efd YZ d efd YZd ZdS(sI SAX-based adapter to copy trees from/to the Python standard library. Use the `ElementTreeContentHandler` class to build an ElementTree from SAX events. Use the `ElementTreeProducer` class or the `saxify()` function to fire the SAX events of an ElementTree against a SAX ContentHandler. See http://codespeak.net/lxml/sax.html i(tContentHandler(tetree(t ElementTreet SubElement(tCommenttProcessingInstructiontSaxErrorcBseZdZRS(sGeneral SAX error. (t__name__t __module__t__doc__(((s./usr/lib64/python2.7/site-packages/lxml/sax.pyRscCs8|ddkr*t|djddSd|fSdS(Nit{it}(ttupletsplittNone(ttag((s./usr/lib64/python2.7/site-packages/lxml/sax.pyt _getNsTagstElementTreeContentHandlercBseZdZddZdZeedejZdZdZ dZ dZ dZ d Z dd Zd Zd Zdd ZdZdZeZRS(s/Build an lxml ElementTree from SAX events. cCsed|_g|_g|_d|_idgd6|_i|_|dkrXtj}n||_ dS(N( Rt_roott_root_siblingst_element_stackt _default_nst _ns_mappingt _new_mappingsRtElementt _makeelement(tselft makeelement((s./usr/lib64/python2.7/site-packages/lxml/sax.pyt__init__!s       cCs t|jS(s=Contains the generated ElementTree after parsing is finished.(RR(R((s./usr/lib64/python2.7/site-packages/lxml/sax.pyt _get_etree,stdoccCsdS(N((Rtlocator((s./usr/lib64/python2.7/site-packages/lxml/sax.pytsetDocumentLocator2scCsdS(N((R((s./usr/lib64/python2.7/site-packages/lxml/sax.pyt startDocument5scCsdS(N((R((s./usr/lib64/python2.7/site-packages/lxml/sax.pyt endDocument8scCse||j|d|j|f}n|}|S(Ns{%s}%s(R(Rt ns_name_tupletns_urit local_nametel_tag((s./usr/lib64/python2.7/site-packages/lxml/sax.pyt _buildTagJs   c CsM|j|}|ri}y|j}Wntk rJ|j}nXxH|D]7\}}|drud|} n |d} ||| s {Z