--- OSA_system2/OSAS_metadata.py 2005/03/03 20:41:00 1.4 +++ OSA_system2/OSAS_metadata.py 2005/03/07 19:33:42 1.5 @@ -6,6 +6,7 @@ from OFS.Folder import Folder from AccessControl import ClassSecurityInfo from Products.PageTemplates.PageTemplateFile import PageTemplateFile import os.path +import sys import xml.dom.minidom import xml.dom.pulldom import OSAS_helpers @@ -262,28 +263,30 @@ class OSAS_Metadata(Folder): def getDisplayFieldsAsStr(self,indexMeta): ret=[] + if indexMeta and not (indexMeta==""): + dom=xml.dom.pulldom.parseString(indexMeta) - dom=xml.dom.pulldom.parseString(indexMeta) + for (event,node) in dom: - for (event,node) in dom: + if event == xml.dom.pulldom.START_ELEMENT and node.tagName=="bib": + dom.expandNode(node) - if event == xml.dom.pulldom.START_ELEMENT and node.tagName=="bib": - dom.expandNode(node) - - try: - type=node.getAttribute('type') - mapping=getattr(self,type).generateMappingHash() - except: - type='generic' - mapping=getattr(self,type).generateMappingHash() - - for field in self.displayFields: try: - ret.append(OSAS_helpers.getText(node.getElementsByTagName(mapping[field][0])[0].childNodes)) + type=node.getAttribute('type') + mapping=getattr(self,type).generateMappingHash() except: - """nothing""" - - return "; ".join(ret) + type='generic' + mapping=getattr(self,type).generateMappingHash() + + for field in self.displayFields: + try: + ret.append(OSAS_helpers.getText(node.getElementsByTagName(mapping[field][0])[0].childNodes)) + except: + """nothing""" + + return "; ".join(ret) + else: + return "" def getDisplayFieldsAsStrOLD(self,indexMeta): """Gebe display fields als string zurück @@ -391,24 +394,23 @@ class OSAS_Metadata(Folder): MDF_path=MDF_path[0] indexFile=os.path.join(MDF_path,'index.meta') - print "load index file",indexFile + server=xmlrpclib.Server(self.serverUrl) if newdoc: if not actualNode: actualNode=newdoc dom=newdoc else: documentStr=server.getFile(indexFile) - print indexFile - print "ds",documentStr + if documentStr: - print "hhh" + newdoc=xml.dom.minidom.parseString(documentStr) dom=newdoc.documentElement actualNode=dom else: - print "ho2" + impl=xml.dom.minidom.getDOMImplementation() newdoc=None @@ -438,7 +440,7 @@ class OSAS_Metadata(Folder): else: xpathStr=MDF_xpathStart - print xpathStr,actualNode + xpathNodes=xml.xpath.Evaluate(xpathStr,actualNode)