Ignore:
Timestamp:
24/06/07 22:08:49 (12 years ago)
Author:
lawrence
Message:

Starting to put stubB handling into ows/browse.
Starting to add trackback support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI05-delivery/ows_framework/trunk/ows_server/ows_server/models/xmlHandler2.py

    r2641 r2643  
    6767            if n[0]=='xmlns': 
    6868                self.realns[n[1][1:-1]]='default' 
     69                self.defns=self.realns[n[1][1:-1]] 
    6970            elif n[0][0:6]=='xmlns:': 
    7071                self.realns[n[1][1:-1]]=n[0][6:] 
     
    178179            s=self.r2.sub(r'\1>',s) 
    179180        return s 
    180        
     181         
     182    def __distributens(self,xpathExpression): 
     183        ''' Actually we only support tag finding in this ''' 
     184        tags=xpathExpression.split('/') 
     185        new='' 
     186        for t in tags:  
     187            if t[1]<>'{':  
     188                new+=self.defns+t+'/' 
     189            else: 
     190                new+=t+'/' 
     191        new=new[0:-1] 
     192        return new 
     193         
     194    def getText(self,elem,xpathExpression,multiple=0): 
     195        ''' Get a text object sensibly, given ET API for xml doesn't handle  
     196        namespaces gracefully ''' 
     197        if elem is None:  
     198            if multiple: 
     199                return ['',] 
     200            else: return ''  
     201        if multiple: 
     202                r=elem.findall(self.__distributens(xpathExpression)) 
     203        else: 
     204                r=[elem.find(self.__distributens(xpathExpression)),] 
     205        try:  # if element is None, this should fail ... 
     206                rr=[] 
     207                for i in r: 
     208                    t=i.text  
     209                    if t is not None:  
     210                        rr.append(t) 
     211                    else: rr.append('') 
     212        except: 
     213                rr=['',] 
     214        if multiple:  
     215                return rr 
     216        else: return rr[0] 
    181217           
    182218           
Note: See TracChangeset for help on using the changeset viewer.