version 1.12, 2006/10/11 16:55:26
|
version 1.13, 2006/10/12 16:37:33
|
Line 77 class getXML(Implicit):
|
Line 77 class getXML(Implicit):
|
|
|
|
|
#print self.xsl |
#print self.xsl |
#print xsltproc.run(document) |
#< xsltproc.run(document) |
tmp=xsltproc.run(document) |
tmp=xsltproc.run(document) |
|
|
self.result=tmp[0:] |
self.result=tmp[0:] |
Line 253 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 253 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",_id=None,_caching=None): |
|
|
def createLinkNode(self,url,dom): |
|
"""createa a link node""" |
|
txt=dom.createTextNode("<XMLLink>") |
|
node=dom.createElementNS("http://test.de","a") |
|
node.setAttributeNS("http://test.de","href",url) |
|
node.appendChild(txt) |
|
return node |
|
|
|
def forwardLink(self,linkid,url,type="target",RESPONSE=None): |
|
"""forward to link""" |
|
if RESPONSE: |
|
RESPONSE.redirect(self.getLink(linkid,url,type=type)) |
|
|
|
else: |
|
return self.getLink(linkid,url,type=type) |
|
def getLink(self,linkid,url,type="target"): |
|
"""get target for linkid""" |
|
dom=NonvalidatingReader.parseUri(url) |
|
|
|
masterurl=dom.xpath("//mpiwg:masterurl/@ref",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
slaveurl=dom.xpath("//mpiwg:slaveurl/@ref",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
#check now if there are in the link file |
|
|
|
xp="//mpiwg:link[@id='%s']"%linkid |
|
|
|
if type=="target": |
|
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
|
fn=link.xpath("mpiwg:target/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
ref=link.xpath("mpiwg:target/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
ref2=link.xpath("mpiwg:target/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
selectionNodeIndex=link.xpath("mpiwg:target/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
lstr=slaveurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
|
lstr+="&_links="+urllib.quote(url)+'&_linkid='+linkid+'&_linktype=target' |
|
|
|
else: |
|
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
|
fn=link.xpath("mpiwg:source/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
ref=link.xpath("mpiwg:source/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
ref2=link.xpath("mpiwg:source/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
selectionNodeIndex=link.xpath("mpiwg:source/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
lstr=masterurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
|
lstr+="&_links="+urllib.quote(url)+'&_linkid='+linkid+'&_linktype=source' |
|
return lstr |
|
|
|
def addLinks(self,txt,url="http://127.0.0.1:8080/HFQP/linkCreator/getCollectionXML?collection=commentary2"): |
|
"""add links to a page from xml linkfile""" |
|
|
|
dom=NonvalidatingReader.parseUri(url) |
|
textDom=NonvalidatingReader.parseString(txt) |
|
|
|
#find ids in txt |
|
ids=textDom.xpath("//*[@id]") |
|
masterurl=dom.xpath("//mpiwg:masterurl/@ref",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
slaveurl=dom.xpath("//mpiwg:slaveurl/@ref",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
#check now if there are in the link file |
|
for textid in ids: |
|
xp="//mpiwg:link[mpiwg:source/@refid='%s']"%textid.xpath("@id")[0].value |
|
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
|
fn=link.xpath("mpiwg:target/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
ref=link.xpath("mpiwg:target/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
ref2=link.xpath("mpiwg:target/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
selectionNodeIndex=link.xpath("mpiwg:target/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
linkid=link.xpath("@id")[0].value |
|
lstr=slaveurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
|
lstr+="&_links="+urllib.quote(url)+'&_url='+url+'&_linkid='+linkid+'&_linktype=target' |
|
node=self.createLinkNode(lstr,textDom) |
|
textid.parentNode.insertBefore(node,textid) |
|
|
|
|
|
xp="//mpiwg:link[mpiwg:target/@refid='%s']"%textid.xpath("@id")[0].value |
|
for link in dom.xpath(xp,explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'}): |
|
fn=link.xpath("mpiwg:source/@filename",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
ref=link.xpath("mpiwg:source/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
|
|
ref2=link.xpath("mpiwg:source/mpiwg:pagelink/@refid",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
selectionNodeIndex=link.xpath("mpiwg:source/mpiwg:pagelink/@selectionNodeIndex",explicitNss={'mpiwg':'http://www.mpiwg-berlin.mpg.de/namespace'})[0].value |
|
linkid=link.xpath("@id")[0].value |
|
lstr=masterurl+'fn='+fn+'&_id='+ref+'&_pagelink=%s///%s'%(ref2,selectionNodeIndex) |
|
lstr+="&_links="+urllib.quote(url)+'&_linkid='+linkid+'&_linktype=source' |
|
|
|
node=self.createLinkNode(lstr,textDom) |
|
textid.parentNode.insertBefore(node,textid) |
|
|
|
|
|
|
|
strio = StringIO() |
|
PrettyPrint(textDom,strio) |
|
xmlstr = strio.getvalue() |
|
|
|
return xmlstr |
|
|
|
|
|
|
|
def getPageLex(self,_pn="1",_id=None,_caching=None,_links=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 288 class ECHO_xslt(ECHO_pageTemplate,ECHO_l
|
Line 389 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) |
|
|
|
if _links: |
|
_links=urllib.unquote(_links) |
|
tmp=self.addLinks(tmp,url=_links) |
|
|
#bugfix for digilib images which doesn't accept & |
#bugfix for digilib images which doesn't accept & |
tmp=tmp.replace("&","&") |
tmp=tmp.replace("&","&") |
|
|