version 1.10, 2006/09/11 14:43:23
|
version 1.11, 2006/09/14 14:31:53
|
Line 252 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 252 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
fn=self.REQUEST['fn'] |
fn=self.REQUEST['fn'] |
self.cache.deleteObject(fn) |
self.cache.deleteObject(fn) |
|
|
def getPageLex(self,_pn="1",_caching=None): |
def getPageLex(self,_pn="1",_id=None,_caching=None): |
"""getpage mit lexikalischer analyse und xslt transform |
"""getpage mit lexikalischer analyse und xslt transform |
if _caching=yes dann wird die lwxikalisch analysierte seite in einem cache abgespeichert |
if _caching=yes dann wird die lwxikalisch analysierte seite in einem cache abgespeichert |
""" |
""" |
Line 262 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 262 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
|
|
fn=self.REQUEST['fn'] |
fn=self.REQUEST['fn'] |
|
|
|
if not _id: |
fromCache=self.cache.retrieveObject(fn,_pn) |
fromCache=self.cache.retrieveObject(fn,_pn) |
|
|
if fromCache and _caching=="yes": |
if fromCache and _caching=="yes": |
Line 273 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 273 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
|
|
self.cache.storeObject(fn,_pn,txt[0:]) |
self.cache.storeObject(fn,_pn,txt[0:]) |
|
|
|
else: |
|
txt=self.tagLex(id=_id) |
|
|
xsl=self.xslt() |
xsl=self.xslt() |
|
|
Line 284 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 286 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
stylesheet = InputSource.DefaultFactory.fromString(xsl) |
stylesheet = InputSource.DefaultFactory.fromString(xsl) |
xsltproc.appendStylesheet(stylesheet) |
xsltproc.appendStylesheet(stylesheet) |
tmp=xsltproc.run(document) |
tmp=xsltproc.run(document) |
|
#bugfix for digilib images which doesn't accept & |
|
tmp=tmp.replace("&","&") |
return tmp[0:] |
return tmp[0:] |
|
|
def getTextInput(self): |
def getTextInput(self): |
Line 309 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 312 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
#return InputSource.InputSource(fact) |
#return InputSource.InputSource(fact) |
#xmlt=urllib.urlopen(qs).read() |
#xmlt=urllib.urlopen(qs).read() |
|
|
def getPage(self,_pn,REQUEST=None,_caching=None): |
def getPage(self,_pn="-1",_id=None,REQUEST=None,_caching=None): |
"""get a page from an xml""" |
"""get a page from an xml""" |
|
|
if not _caching: |
if not _caching: |
_caching=self.caching |
_caching=self.caching |
|
|
pn=int(_pn)-1 |
pn=int(_pn)-1 |
if pn<0: |
if pn<0 and (not _id): |
if REQUEST: |
if REQUEST: |
return "Sorry, pagenumbers have to be greater than 0" |
return "Sorry, pagenumbers have to be greater than 0" |
else: |
else: |
Line 340 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 343 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
#pb should have a namespache |
#pb should have a namespache |
|
|
pbs=dom.xpath("//mpiwg:pb",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}) |
pbs=dom.xpath("//mpiwg:pb",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}) |
|
|
if len(pbs)==0: # versuche nochmal ohne |
if len(pbs)==0: # versuche nochmal ohne |
pbs=dom.xpath("//pb") |
pbs=dom.xpath("//pb") |
|
|
|
if _id: |
|
#suche wieviele pb for der id |
|
|
|
|
|
idpb=dom.xpath("//*[@id='%s']/preceding::node()/mpiwg:pb"%_id,explicitNss={'html':'http://test.de','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}) |
|
if len(idpb)==0: |
|
idpb=dom.xpath("//*[@id='%s']/preceding::node()/pb"%_id) |
|
|
|
if len(idpb)==0: |
|
k=0 |
|
for node in dom.xpath("//*[@id='%s']//preceding::node()"%_id,explicitNss={'html':'http://test.de','mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
|
if getattr(node,'tagName',"")=="mpiwg:pb": |
|
k+=1 |
|
else: |
|
k=len(idpb) |
|
pn=k-1 #-1 wegen Seitenzahlzaehlung startet mit 0 |
|
|
if pn > len(pbs): |
if pn > len(pbs): |
if REQUEST: |
if REQUEST: |
return "Sorry, pagenumber %s does not exit"%(pn+1) |
return "Sorry, pagenumber %s does not exit"%(pn+1) |