--- ECHO_content/ECHO_collection.py 2004/08/17 15:24:38 1.164
+++ ECHO_content/ECHO_collection.py 2004/08/27 22:57:57 1.165
@@ -270,6 +270,13 @@ def getText(nodelist):
rc = rc + node.data
return rc
+def getTextFromNode(nodename):
+ nodelist=nodename.childNodes
+ rc = ""
+ for node in nodelist:
+ if node.nodeType == node.TEXT_NODE:
+ rc = rc + node.data
+ return rc
def sendFile(self, filename, type):
"""sends an object or a local file (in the product) as response"""
@@ -666,7 +673,7 @@ class ECHO_fullText(ZopePageTemplate):
# 3 handler functions
def start_element(name, attrs):
global retLex
- print name
+
retLex+=createTag(name,attrs)
def end_element(name):
global retLex
@@ -689,7 +696,7 @@ class ECHO_fullText(ZopePageTemplate):
p.CharacterDataHandler = char_data
p.Parse(lemmatized.encode('utf-8'),1)
- print repr(lemmatized.encode('utf-8'))
+ #print repr(lemmatized.encode('utf-8'))
return retLex
@@ -797,7 +804,7 @@ class ECHO_resource(Folder,Persistent):
"""showrdf"""
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
ret="""\n
%s
\n"%id) + if type=="CDLI_group": + + try: + manage_addECHO_collection(self,id,name,name,"","","","","") + + except: + self.REQUEST.RESPONSE.write("
Error%s
\n"%id) + + self.REQUEST.RESPONSE.write("Creates:%s
\n"%getattr(self,id).absolute_url()) + + return type,getattr(self,id),urn + + if type=="CDLI_item": + try: + manage_addECHO_resource(self,id,name,name,"","",urn,"","") + except: + self.REQUEST.RESPONSE.write("Error%s
\n"%id) + self.REQUEST.RESPONSE.write("Creates:%s
\n"%getattr(self,id).absolute_url()) + + + return "XX" + +def createNode(self,nodes): + for node in nodes: + name=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:name")[0]) + type=getTextFromNode(node.getElementsByTagName("ECHONAVIGATION:type")[0]) + urn=node.getAttribute("RDF:about") + + id=re.sub('[^a-zA-Z0-9]','',name).encode('ascii','ignore') + #print "id",id + #print type + self.REQUEST.RESPONSE.write("%s
\n"%id) + if type=="CDLI_group": + print self.getId() + + manage_addECHO_collection(self,id,name,name,"","","","","") + print "done::::",getattr(self,id) + return type,getattr(self,id),urn + + if type=="CDLI_item": + manage_addECHO_resource(self,id,name,name,"","",urn,"","") + return "XX" + + + class ECHO_root(Folder,Persistent,Implicit): """ECHO Root Folder""" security=ClassSecurityInfo() meta_type="ECHO_root" - + + def getTablet(self,item): + read=urllib.urlopen("http://enlil.museum.upenn.edu/cgi-bin/cdlget.plx?item=%s&project=ncdl"%item).read() + + read=re.sub("\[search\]","search",read) + + return read[read.find("")+6:read.rfind("")] + + def generateFromRDF2(self): + """generate from RDF2""" + global seqs + seqs={} + global descrs + descrs={} + global key + key="" + global value + value="" + def start_element(name,attrs): + + global seqs + global descrs + global key + global value + seq="" + if name=="RDF:Seq": + key=attrs.get('RDF:about') + try: # teste ob liste + x=seqs[key][0] + except: + + seqs[key]=[] + + + elif name=="RDF:Description": + key=attrs.get('RDF:about') + + + elif name=="RDF:li": + name=attrs.get('RDF:resource') + seqs[key].append(name) + + elif name=="ECHONAVIGATION:type": + value="type" + + elif name=="ECHONAVIGATION:name": + value="name" + elif name=="ECHONAVIGATION:linkClickable": + value="linkClickable" + + def end_element(name): + """nothing""" + key="" + value="" + + def char_data(data): + """nothing""" + + data=re.sub("\n","",data) + try: + if descrs[key].has_key(value): + descrs[key][value]+=data + else: + descrs[key][value]=data + except: + + descrs[key]={} + descrs[key][value]=data + + p = xml.parsers.expat.ParserCreate() + + p.StartElementHandler = start_element + p.EndElementHandler = end_element + p.CharacterDataHandler = char_data + fileName="/Users/dwinter/Documents/Projekte/CDLI/test11.rdf" + + p.ParseFile(file(fileName)) + self.REQUEST.RESPONSE.write("