version 1.5, 2005/10/26 08:35:53
|
version 1.6, 2006/09/09 00:10:01
|
Line 10 from ECHO_helpers import *
|
Line 10 from ECHO_helpers import *
|
import sys |
import sys |
import urllib |
import urllib |
import urlparse |
import urlparse |
|
from Ft.Xml.Domlette import Print, PrettyPrint |
|
|
|
|
from Globals import package_home |
from Globals import package_home |
Line 22 import urllib
|
Line 22 import urllib
|
|
|
try: |
try: |
from Ft.Xml.Xslt.Processor import Processor |
from Ft.Xml.Xslt.Processor import Processor |
from Ft.Xml import InputSource |
from Ft.Xml import InputSource, EMPTY_NAMESPACE,Parse |
|
|
except: |
except: |
print "4suite has to be installed" |
print "4suite has to be installed" |
|
|
Line 61 class getXML(Implicit):
|
Line 60 class getXML(Implicit):
|
def run(self): |
def run(self): |
"""call it""" |
"""call it""" |
xml="" |
xml="" |
|
print "X",self._v_qs |
try: |
try: |
|
|
urlH=urllib.urlopen(self._v_qs) |
urlH=urllib.urlopen(self._v_qs) |
Line 141 class ECHO_xslt(ECHO_pageTemplate):
|
Line 140 class ECHO_xslt(ECHO_pageTemplate):
|
if getattr(self,'cgiUrl','')=='': |
if getattr(self,'cgiUrl','')=='': |
self.cgiUrl="http://medea.mpiwg-berlin.mpg.de/cgi-bin/search/q1" |
self.cgiUrl="http://medea.mpiwg-berlin.mpg.de/cgi-bin/search/q1" |
|
|
qs="%s?%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING']) |
qs="%s%s"%(self.cgiUrl,self.REQUEST['QUERY_STRING']) |
xsl=self.absolute_url()+"/xslt" |
xsl=self.absolute_url()+"/xslt" |
self._v_xmltrans=getXML().__of__(self) |
self._v_xmltrans=getXML().__of__(self) |
#self._xmltrans.start() |
#self._xmltrans.start() |
Line 173 class ECHO_xslt(ECHO_pageTemplate):
|
Line 172 class ECHO_xslt(ECHO_pageTemplate):
|
return self._v_xmltrans.getResult() |
return self._v_xmltrans.getResult() |
|
|
|
|
|
def getPage(self,pn): |
|
"""get a page from an xml""" |
|
pn=int(pn) |
|
impl=xml.dom.getDOMImplementation() |
|
newDoc=impl.createDocument(EMPTY_NAMESPACE,None,None |
|
) |
|
root=newDoc.createElement('page') |
|
newDoc.appendChild(root) |
|
|
|
xmlt=urllib.urlopen("%s"%self.cgiUrl).read() |
|
dom=Parse(xmlt) |
|
|
|
pbs=dom.xpath("//pb") |
|
beginNode=pbs[pn] #take the n'th pb |
|
endNode=pbs[pn+1] |
|
follower=beginNode.xpath('following::node()') |
|
#root.appendChild(beginNode) |
|
found=[] |
|
|
|
for node in endNode.xpath('preceding::node()'): |
|
if node in follower: |
|
found.append(node) |
|
|
|
#rempove all children of parents which are also in the list |
|
for x in found: |
|
for child in x.xpath(".//*"): |
|
try: |
|
|
|
nr=found.index(child) |
|
|
|
del(found[nr]) |
|
except: |
|
pass |
|
|
|
found.append(endNode) |
|
|
|
for x in found: |
|
PrettyPrint(x) |
|
|
|
|
|
|
def manage_addECHO_xsltForm(self): |
def manage_addECHO_xsltForm(self): |
"""Form for adding""" |
"""Form for adding""" |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_xslt.zpt')).__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddECHO_xslt.zpt')).__of__(self) |