Changeset 5143 for ndgCommon


Ignore:
Timestamp:
26/03/09 17:12:00 (10 years ago)
Author:
cbyrom
Message:

Improve et2text to cope with non-string elements + tidy up the vocab
utils and consolidate with the ndgcommon ones.

Location:
ndgCommon/trunk/ndg/common/src/lib
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • ndgCommon/trunk/ndg/common/src/lib/ETxmlView.py

    r4793 r5143  
    9696        return tag.replace(self.xmlns, '', 1) 
    9797 
    98 def et2text(elem,indent='',html=0,space='   ',helper=None): 
    99         '''Lightweight pretty printing of elementTree elements''' 
    100         def estrip(elem): 
    101                 ''' Just want to get rid of unwanted whitespace ''' 
    102                 if elem is None: 
    103                         return '' 
    104                 else: 
    105                         return elem.strip() 
    106         ns=helper 
    107         if ns is None: ns=nsdumb(elem) 
    108         strAttrib='' 
    109         for att in elem.attrib: 
    110                 strAttrib+=' %s="%s"'%(att,elem.attrib[att]) 
    111         result='%s<%s%s>%s'%(indent,ns.strip(elem.tag),strAttrib,estrip(elem.text)) 
    112         children=len(elem) 
    113         if children: 
    114                 for item in elem: 
    115                         result+='\n'+et2text(item,indent=indent+space,helper=ns) 
    116                 result+='\n%s%s</%s>'%(indent,estrip(item.tail),ns.strip(elem.tag)) 
    117         else: 
    118                 result+='</%s>'%(ns.strip(elem.tag)) 
    119         return result 
     98 
     99def et2text(elem,indent = '', space = '   ',helper = None): 
     100    ''' 
     101    Lightweight pretty printing of elementTree elements 
     102    @param elem: Elementtree Element 
     103    @keyword indent: initial indentation to use. Default = '' 
     104    @keyword space: space to use for nested indentations.  Default = '   ' 
     105    @keyword helper: function to strip out namespaces - typically nsdumb is 
     106    used.  Default = None => nsdumb will be used 
     107    ''' 
     108    def estrip(elem): 
     109        ''' Just want to get rid of unwanted whitespace ''' 
     110        if elem is None: 
     111            return '' 
     112        else: 
     113            # allow numbers to be included 
     114            if isinstance(elem, str) or isinstance(elem, unicode): 
     115                return elem.strip() 
     116            else: 
     117                return elem 
     118 
     119    ns=helper 
     120    if ns is None:  
     121        ns=nsdumb(elem) 
     122         
     123    strAttrib='' 
     124    for att in elem.attrib: 
     125        strAttrib += ' %s="%s"' %(att, elem.attrib[att]) 
     126    result = '%s<%s%s>%s' %(indent, ns.strip(elem.tag),  
     127                            strAttrib,estrip(elem.text)) 
     128 
     129    # check for child elements 
     130    if len(elem): 
     131        for item in elem: 
     132            result += '\n' + et2text(item, indent = indent+space, helper = ns) 
     133        result += '\n%s%s</%s>' %(indent, estrip(item.tail), ns.strip(elem.tag)) 
     134    else: 
     135        result += '</%s>' %(ns.strip(elem.tag)) 
     136    return result 
    120137 
    121138 
  • ndgCommon/trunk/ndg/common/src/lib/utilities.py

    r5096 r5143  
    2323esc_chars = {'\xb0':'&#xb0;','&deg;':'&#176;'} 
    2424     
     25DATE_FORMAT = "%Y-%m-%dT%H:%M:%SZ" 
    2526 
    2627class edict(dict): 
Note: See TracChangeset for help on using the changeset viewer.