Ignore:
Timestamp:
20/12/11 16:56:00 (8 years ago)
Author:
sdonegan
Message:

Various updates to improve reporting and utf-8 handling - note requires ElementTree 1.3 or higher

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI01-discovery-Ingest/trunk/v4.3.0/ingestAutomation-upgrade/OAIBatch/ExtractISO.py

    r8001 r8026  
    11 
    2 from xml.etree import ElementTree as ET 
     2#from xml.etree import ElementTree as ET - SJD - not using the standard python ET anymore - use latest version! 
     3from elementtree import ElementTree as ET 
    34import logging,urllib,os,sys,inspect,string 
    45from Utilities import IsoIngestListUtilities # so can use those useful getSingleVal and getMultipleVal methods for discerning lists etc (esp useful when using the isoVal to dbColumn methods..) 
     
    119120                self.validDoc = True 
    120121                 
     122                self.stopHere = False # aid debuging! 
     123                 
    121124                self.root = self.getIsoXML(self.inputXMLfile) 
    122125                 
     
    174177                        self.datasetID[self.findTheListData(self.datasetID)][0] = self.datasetID[self.findTheListData(self.datasetID)][0].replace(" ", "_") 
    175178                 
    176                  
     179                #self.stopHere = True 
    177180                self.datasetName = self.getElementVal(self.isoModel.dataSetName()) 
    178181                if self.datasetName == 'None': 
     
    181184                        self.validDoc = False 
    182185                 
    183                 self.datasetAbstract = self.getElementVal(self.isoModel.dataSetAbstract())                       
     186                self.datasetAbstract = self.getElementVal(self.isoModel.dataSetAbstract())               
    184187                 
    185188                self.revisionDate = self.getElementVal(self.isoModel.metadataRevisionDate()) 
     
    11331136                                for elValIt in thisEl: 
    11341137                                         
    1135                                         elVal = elValIt.text 
     1138                                        #elVal = elValIt.text 
     1139                                        #ensure correct encoding... 
     1140                                        elVal = elValIt.text.encode('utf-8') 
    11361141                                                                                 
    11371142                                        if '@' in depXpathOrig: 
     
    11771182                                                                                                                 
    11781183                                                                resDependantVal.append(elVal) 
    1179                                                  
     1184                 
     1185                if self.stopHere: 
     1186                        import pdb; pdb.set_trace()              
    11801187                                                                                                                                                 
    11811188                return resDependantVal 
     
    12221229                                        value = elVal.attrib[attribVal] 
    12231230                                else: 
    1224                                         value = elVal.text 
     1231                                        #ensure correct encoding... 
     1232                                        value = elVal.text.encode('utf-8') 
    12251233                                         
    12261234                                if (showValue is True) and (value is not None): 
     
    12301238                                         
    12311239                                        resElementVal.append(value) 
     1240                                         
     1241                if self.stopHere: 
     1242                        import pdb; pdb.set_trace() 
    12321243                '''      
    12331244                if rootEl[0].text is None:                                       
     
    13171328                #parse the xml with elementtree 
    13181329                try: 
    1319                          
    1320                         self.etree=ET.parse(file) 
     1330                        #explicity code everything as UTF-8 (ensure UTF-8 compliance Dec 2011) - Use Et 1.3+ (now explicitly included in buildout recipe)                        
     1331                        parser = ET.XMLParser(encoding="utf-8") 
     1332                        self.etree=ET.parse(file,parser=parser) 
    13211333                        root=self.etree.getroot() # should be the "gmd:MD_Metadata" element 
    13221334                except: 
Note: See TracChangeset for help on using the changeset viewer.