diff MetaDataFolder.py @ 27:a0d273542509

better DRI handling.
author casties
date Wed, 15 Aug 2012 17:07:37 +0200
parents a19575be96e8
children 40508e672841
line wrap: on
line diff
--- a/MetaDataFolder.py	Mon Jul 30 19:43:23 2012 +0200
+++ b/MetaDataFolder.py	Wed Aug 15 17:07:37 2012 +0200
@@ -143,7 +143,7 @@
         if mdObj is not None:
             return mdObj.getData(path=path, dom=dom, recursive=recursive, all=all, allText=allText)
         else:
-            logging.error("getXmlPathData: MetaData element at '%s' not found!"%xmlpath)
+            logging.error("getXmlPathData: MetaData object for '%s' not found!"%xmlpath)
             return None
 
     def getXmlPathFormatted(self, xmlpath, template, path=None, dom=None, data=None, allFields=False, recursive=0, all=False, allText=False):
@@ -170,7 +170,7 @@
             return fmt
         
         else:
-            logging.error("getXmlPathFormatted: MetaData element at '%s' not found!"%xmlpath)
+            logging.error("getXmlPathFormatted: MetaData object for '%s' not found!"%xmlpath)
             return ''
 
     def getResourceData(self, path=None, dom=None):
@@ -212,19 +212,24 @@
     def getDRI(self, path=None, dom=None, type="escidoc"):
         """returns the DRI of the document"""
         dris = self.getXmlPathData('resource/meta/dri', path=path, dom=dom, all=True)
-        logging.debug("getDRI: dris=%s"%repr(dris))
+        #logging.debug("getDRI: dris=%s"%repr(dris))
         if dris is None:
             return None
         
         for dri in dris:
-            logging.debug("getDRI: dri=%s"%dri)
+            #logging.debug("getDRI: dri=%s"%dri)
+            if type is None:
+                # no type -- take the first one
+                return dri.get('@text', None)
+            
+            # use element with matching @type
             att = dri.get('@attr', None)
             if att is not None:
                 if (att.get('type', None) == type):
                     return dri.get('@text', None)
         
         return None
-        #return self.resource.meta.getDRI(path=path, dom=dom, type=type)
+
     
     def getBibData(self, path=None, dom=None):
         """returns contents of bib tag as dict"""