ó ìm>c@sdZddlZddlZddlmZddlmZddlmZmZm Z ddl m Z ddl m Z ddlZddlZejd?d kr±d „Zn d „Zd e fd „ƒYZi dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6dej6Zd„Z ej!dd„Z"ej!dddd„Z$ej!ddd„Z%ej!dd „Z&d!„Z'dd"„Z(dd#„Z)d+Z*d&„Z+d'„Z,d(„Z-d)„Z.dd*„Z/dS(,sÉ WWW: http://4suite.com/4DOM e-mail: support@4suite.com Copyright (c) 2000 Fourthought Inc, USA. All Rights Reserved. See http://4suite.com/COPYRIGHT for license and copyright information iÿÿÿÿN(tNode(t NodeFilter(t XML_NAMESPACEtXMLNS_NAMESPACEt DOMException(tHTML_4_TRANSITIONAL_INLINE(t CanonicalizeiicCst|ƒtjtjgkS(N(ttypettypest StringTypet UnicodeType(ts((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pytscCst|ƒtjkS(N(RRR (R ((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyR stFtDomExceptioncBseZd„ZRS(cGsttj|f|ƒdS(N(tapplyRt__init__(tselftargs((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyR!s(t__name__t __module__R(((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyR stElementtAttrtTextt CDATASectiontEntityReferencetEntitytProcessingInstructiontCommenttDocumentt DocumentTypetDocumentFragmenttNotationcCst|S(N(t NodeTypeDict(tnodeType((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pytNodeTypeToClassName6ssUTF-8cCsat|dƒsdSddlm}t|ƒ}|j||d|ƒ}|j||ƒjƒdS(NR!iÿÿÿÿ(tPrintertnsHints(thasattrt xml.dom.extR#tSeekNsst PrintVisitort PrintWalkertrun(troottstreamtencodingR#tnsstvisitor((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pytPrint:s s c Cs¨t|dƒsdSddlm}t|ƒ}|p8g}|jpG|}t|dƒrf|t}n|j|||||ƒ}|j||ƒjƒ|j dƒdS(NR!iÿÿÿÿ(R#tgetElementsByNames ( R%R&R#R't ownerDocumentRR(R)R*twrite( R+R,R-tindenttpreserveElementsR#t nss_hintst owner_docR/((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyt PrettyPrintDs     cCs_t|dƒsdSddlm}|j|||ƒ}tj||ƒjƒ|jdƒdS(NR!iÿÿÿÿ(t XHtmlPrinters (R%R&R9tXHtmlPrintVisitorR#R)R*R3(R+R,R-R4R9R/((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pytXHtmlPrettyPrintVs cCst|||dƒdS(Nt(R;(R+R,R-((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyt XHtmlPrintascCs¦|j}x:|D]2}|jtjkr6t|ƒn|j|ƒqW|jtjkr¢xFt|jjƒD]/}|jj dƒ}|j |ƒt|ƒqlWndS(Ni( t childNodesR!Rt ELEMENT_NODEt ReleaseNodet removeChildtranget attributestlengthtitemtremoveAttributeNode(tnodetcntchildtctrtattr((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyR@es    cCs|p g}|t}g}|jp(|}|j|tjddƒ}|jƒ}x‹|rß|}xl||krÏ|jtj kr¡|j |kr•Pn|j }qdt j |jƒsÃ|j|ƒn|j }qdW|jƒ}qUWx|D]}|j j|ƒqçW|S(s• Remove all text nodes in a given tree that do not have at least one non-whitespace character, taking into account special HTML elements iN(RR2tcreateNodeIteratorRt SHOW_TEXTtNonetnextNodeR!RR?tnodeNamet parentNodetstringtstriptdatatappendRA(t startNodeR5t remove_listR7tsnitt curr_nodetancestortnode_to_remove((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyt StripHtmlss*        cCs(|p g}g}|jp|}|j|tjddƒ}|jƒ}x¸|rt|ƒdkrótj|j ƒsó|}xr||krÖ|j t j krÊ|j |ksÃ|j|j f|krÊPqÊn|j}q~W|j|ƒ|j}qón|jƒ}qKWx|D]}|jj|ƒq W|S(s‰ Remove all text nodes in a given tree that do not have at least one non-whitespace character, taking into account xml:space itpreserveN(R2RLRRMRNROt XmlSpaceStateRRRSRTR!RR?t localNamet namespaceURIRQRURA(RVR5RWR7RXRYRZR[((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pytStripXml‘s*    '   R<tIDcCs„|jp |}|j|tjddƒ}|jƒ}xG|r|jjtdƒ}|rp|j ƒ|krp|S|jƒ}q9WdS(sZ Return the element in the given tree with an ID attribute of the given value iN( R2RLRt SHOW_ELEMENTRNRORCtgett_id_keyt_get_nodeValue(RVttargetIdR7RXRYRK((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pytGetElementById±s   cCs¤dddg}d}d}d}x||p-|sŸ|jtjkrl|jtdƒ}||krld}qln|j}|oŠ|jtjks–d}n|}q$W|S(sO Return the valid value of the xml:space attribute currently in effect R<R]tdefaultitspacei(R!RR?tgetAttributeNSRRQ(RGt valid_valuestxml_space_foundt root_reachedtxml_space_statet parent_node((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyR^Âs    cCsitd6}|jtjkr5|jr5t|jƒS|jtjkrÝ|jrc|j||jR!RR?R`RvRCRwRR_RxRNR'(RGR.RIRK((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyR's   (R<Rb(0t__doc__tsysRRtxml.domRtxml.dom.NodeFilterRRRRt xml.dom.htmlRtc14nRtreRt hexversiont IsDOMStringR R?Rst TEXT_NODEtCDATA_SECTION_NODEtENTITY_REFERENCE_NODEt ENTITY_NODEtPROCESSING_INSTRUCTION_NODEt COMMENT_NODEt DOCUMENT_NODEtDOCUMENT_TYPE_NODEtDOCUMENT_FRAGMENT_NODEt NOTATION_NODER R"tstdoutR0RNR8R;R=R@R\RaReRhR^RuR‚R'(((sF/opt/freeware/lib/python2.7/site-packages/_xmlplus/dom/ext/__init__.pyt sP