|
|
| version 1.1.2.1, 2011/07/14 17:43:56 | version 1.1.2.2, 2011/07/15 19:34:41 |
|---|---|
| Line 9 from Products.zogiLib.zogiLib import bro | Line 9 from Products.zogiLib.zogiLib import bro |
| from Ft.Xml import EMPTY_NAMESPACE, Parse | from Ft.Xml import EMPTY_NAMESPACE, Parse |
| import Ft.Xml.Domlette | import Ft.Xml.Domlette |
| import xml.etree.ElementTree as ET | |
| import os.path | import os.path |
| import sys | import sys |
| import urllib | import urllib |
| Line 35 def getInt(number, default=0): | Line 32 def getInt(number, default=0): |
| except: | except: |
| return int(default) | return int(default) |
| def getTextFromNode(node): | def getTextFromNode(nodename): |
| """get the cdata content of a node""" | """get the cdata content of a node""" |
| if node is None: | if nodename is None: |
| return "" | return "" |
| # ET: | nodelist=nodename.childNodes |
| text = node.text or "" | rc = "" |
| for e in node: | for node in nodelist: |
| text += gettext(e) | if node.nodeType == node.TEXT_NODE: |
| if e.tail: | rc = rc + node.data |
| text += e.tail | return rc |
| # 4Suite: | |
| #nodelist=node.childNodes | |
| #text = "" | |
| #for n in nodelist: | |
| # if n.nodeType == node.TEXT_NODE: | |
| # text = text + n.data | |
| return text | |
| def serializeNode(node, encoding="utf-8"): | def serializeNode(node, encoding="utf-8"): |
| """returns a string containing node as XML""" | """returns a string containing node as XML""" |
| s = ET.tostring(node) | stream = cStringIO.StringIO() |
| #logging.debug("BUF: %s"%(stream)) | |
| # 4Suite: | Ft.Xml.Domlette.Print(node, stream=stream, encoding=encoding) |
| # stream = cStringIO.StringIO() | s = stream.getvalue() |
| # Ft.Xml.Domlette.Print(node, stream=stream, encoding=encoding) | #logging.debug("BUF: %s"%(s)) |
| # s = stream.getvalue() | stream.close() |
| # stream.close() | |
| return s | return s |
| def browserCheck(self): | def browserCheck(self): |
| Line 509 class documentViewer(Folder): | Line 496 class documentViewer(Folder): |
| if txt is None: | if txt is None: |
| raise IOError("Unable to get dir-info from %s"%(infoUrl)) | raise IOError("Unable to get dir-info from %s"%(infoUrl)) |
| dom = ET.fromstring(txt).getroot() | dom = Parse(txt) |
| #dom = Parse(txt) | sizes=dom.xpath("//dir/size") |
| sizes=dom.find("//dir/size") | |
| #sizes=dom.xpath("//dir/size") | |
| logging.debug("documentViewer (getparamfromdigilib) dirInfo:size"%sizes) | logging.debug("documentViewer (getparamfromdigilib) dirInfo:size"%sizes) |
| if sizes: | if sizes: |
| Line 561 class documentViewer(Folder): | Line 546 class documentViewer(Folder): |
| if txt is None: | if txt is None: |
| raise IOError("Unable to read index meta from %s"%(url)) | raise IOError("Unable to read index meta from %s"%(url)) |
| dom = ET.fromstring(txt).getroot() | dom = Parse(txt) |
| #dom = Parse(txt) | |
| return dom | return dom |
| def getPresentationInfoXML(self, url): | def getPresentationInfoXML(self, url): |
| Line 581 class documentViewer(Folder): | Line 565 class documentViewer(Folder): |
| if txt is None: | if txt is None: |
| raise IOError("Unable to read infoXMLfrom %s"%(url)) | raise IOError("Unable to read infoXMLfrom %s"%(url)) |
| dom = ET.fromstring(txt).getroot() | dom = Parse(txt) |
| #dom = Parse(txt) | |
| return dom | return dom |
| Line 600 class documentViewer(Folder): | Line 583 class documentViewer(Folder): |
| path=getParentDir(path) | path=getParentDir(path) |
| dom = self.getDomFromIndexMeta(path) | dom = self.getDomFromIndexMeta(path) |
| acctype = dom.find("//access-conditions/access/@type") | acctype = dom.xpath("//access-conditions/access/@type") |
| #acctype = dom.xpath("//access-conditions/access/@type") | |
| if acctype and (len(acctype)>0): | if acctype and (len(acctype)>0): |
| access=acctype[0].value | access=acctype[0].value |
| if access in ['group', 'institution']: | if access in ['group', 'institution']: |
| Line 627 class documentViewer(Folder): | Line 609 class documentViewer(Folder): |
| logging.debug("documentViewer (getbibinfofromindexmeta cutted) path: %s"%(path)) | logging.debug("documentViewer (getbibinfofromindexmeta cutted) path: %s"%(path)) |
| # put in all raw bib fields as dict "bib" | # put in all raw bib fields as dict "bib" |
| bib = dom.find("//bib/*") | bib = dom.xpath("//bib/*") |
| #bib = dom.xpath("//bib/*") | |
| if bib and len(bib)>0: | if bib and len(bib)>0: |
| bibinfo = {} | bibinfo = {} |
| for e in bib: | for e in bib: |
| Line 637 class documentViewer(Folder): | Line 618 class documentViewer(Folder): |
| # extract some fields (author, title, year) according to their mapping | # extract some fields (author, title, year) according to their mapping |
| metaData=self.metadata.main.meta.bib | metaData=self.metadata.main.meta.bib |
| bibtype=dom.find("//bib/@type") | bibtype=dom.xpath("//bib/@type") |
| #bibtype=dom.xpath("//bib/@type") | |
| if bibtype and (len(bibtype)>0): | if bibtype and (len(bibtype)>0): |
| bibtype=bibtype[0].value | bibtype=bibtype[0].value |
| else: | else: |