3
PfK @ s d dl mZmZmZ d dlmZ ddlmZmZm Z ddddd d
ddd
g Z
ejZej
ZejZejZejZejZdZdje Z G dd deZG dd
d
eZdS ) )absolute_importdivisionunicode_literals)Node )
namespacesvoidElementsspaceCharactersDOCUMENTDOCTYPETEXTELEMENTCOMMENTENTITYUNKNOWN
TreeWalkerNonRecursiveTreeWalkerz<#UNKNOWN#> c @ sh e Zd Zdd Zdd Zdd Zddd Zd
d Zdd
Zdd Z dd Z
dddZdd Zdd Z
dS )r c C s
|| _ d S )N)tree)selfr r /usr/lib/python3.6/base.py__init__ s zTreeWalker.__init__c C s t d S )N)NotImplementedError)r r r r __iter__ s zTreeWalker.__iter__c C s
d|dS )NZSerializeError)typedatar )r msgr r r error s zTreeWalker.errorFc c s$ d|||dV |r | j dV d S )NZEmptyTag)r name namespacer zVoid element has children)r )r r r attrshasChildrenr r r emptyTag s
zTreeWalker.emptyTagc C s d|||dS )NZStartTag)r r r r r )r r r r! r r r startTag% s zTreeWalker.startTagc C s d||dS )NZEndTag)r r r r )r r r r r r endTag+ s zTreeWalker.endTagc c sx |}|j t}|d t|t| }|r6d|dV |}|jt}|t|d }|rdd|dV |rtd|dV d S )NZSpaceCharacters)r r Z
Characters)lstripr lenrstrip)r r Zmiddleleftrightr r r text0 s
zTreeWalker.textc C s
d|dS )NComment)r r r )r r r r r comment> s zTreeWalker.commentNc C s d|||dS )NZDoctype)r r publicIdsystemIdr )r r r. r/ r r r doctypeA s zTreeWalker.doctypec C s
d|dS )NZEntity)r r r )r r r r r entityG s zTreeWalker.entityc C s | j d| S )NzUnknown node type: )r )r ZnodeTyper r r unknownJ s zTreeWalker.unknown)F)NN)__name__
__module____qualname__r r r r# r$ r% r+ r- r0 r1 r2 r r r r r s
c @ s4 e Zd Zdd Zdd Zdd Zdd Zd d
ZdS )r c C s t d S )N)r )r noder r r getNodeDetailsO s z%NonRecursiveTreeWalker.getNodeDetailsc C s t d S )N)r )r r6 r r r
getFirstChildR s z$NonRecursiveTreeWalker.getFirstChildc C s t d S )N)r )r r6 r r r getNextSiblingU s z%NonRecursiveTreeWalker.getNextSiblingc C s t d S )N)r )r r6 r r r
getParentNodeX s z$NonRecursiveTreeWalker.getParentNodec c s | j }x|d k r| j|}|d |dd }}d}|tkrN| j| V n|tkrrx| j| D ]
}|V qbW n|tkr|\}}}}| s|td kr|tkrx| j ||||D ]
}|V qW d}n| j
|||V nV|tkr| j|d V n<|t
kr| j|d V n |tkrd}n| j|d V |r@| j|} nd } | d k rT| }q
x|d k r| j|}|d |dd }}|tkr|\}}}}|r|td ks|tkr| j||V | j |krd }P | j|}
|
d k r|
}P n
| j|}qVW q
W d S )Nr FZhtmlT)r r7 r r0 r r+ r
r r r# r$ r r- r r1 r
r2 r8 r% r9 r: )r ZcurrentNodeZdetailsr r" tokenr r Z
attributesZ
firstChildZnextSiblingr r r r [ sZ
zNonRecursiveTreeWalker.__iter__N)r3 r4 r5 r7 r8 r9 r: r r r r r r N s
N)Z
__future__r r r Zxml.domr Z constantsr r r __all__Z
DOCUMENT_NODEr
ZDOCUMENT_TYPE_NODEr Z TEXT_NODEr ZELEMENT_NODEr
ZCOMMENT_NODEr ZENTITY_NODEr r joinobjectr r r r r r