--- ECHO_content/ECHO_collection.py 2004/10/04 12:57:19 1.172 +++ ECHO_content/ECHO_collection.py 2004/10/05 07:31:09 1.173 @@ -32,6 +32,12 @@ from Acquisition import Implicit from ECHO_helpers import displayTypes import urllib import time +from Ft.Xml.Domlette import NonvalidatingReader +from Ft.Xml.Domlette import PrettyPrint +from Ft.Xml import EMPTY_NAMESPACE + +import Ft.Xml.XPath +import cStringIO try: from psycopg import libpq @@ -3520,28 +3526,40 @@ class ECHO_root(Folder,Persistent,Implic def xml2html(self,str,quote="yes"): """link2html fuer VLP muss hier noch raus""" - #print str if str: if quote=="yes2": str=re.sub("\&","&",str) - dom=xml.dom.minidom.parseString(str) - links=dom.getElementsByTagName("link") - + #dom=xml.dom.minidom.parseString(str) + dom = NonvalidatingReader.parseString(str,"http://www.mpiwg-berlin.mpg.de/") + #links=dom.getElementsByTagName("link") + links=Ft.Xml.XPath.Evaluate(".//link", contextNode=dom) for link in links: - link.tagName="a" - ref=link.getAttribute("ref") - pn=link.getAttribute("page") - + #link.tagName="a" + + ref=link.getAttributeNS(EMPTY_NAMESPACE,"ref") + pn=link.getAttributeNS(EMPTY_NAMESPACE,"page") + cns=link.childNodes + + newLink=dom.createElementNS(EMPTY_NAMESPACE,"a") + for cn in cns: + newLink.appendChild(cn) + + link.parentNode.replaceChild(newLink,link) if self.checkRef(ref): if pn: - link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn) + newLink.setAttributeNS(EMPTY_NAMESPACE,"href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref+"&p="+pn) else: - link.setAttribute("href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref) + newLink.setAttributeNS(EMPTY_NAMESPACE,"href",self.aq_parent.absolute_url()+"/vlp_coll?id="+ref) - str= dom.toxml() - + #str= dom.toxml('utf-8') + buf = cStringIO.StringIO() + PrettyPrint(dom, stream=buf, encoding='UTF-8') + str = buf.getvalue() + buf.close() + #str=PrettyPrint(dom.documentElement,encoding='UTF-8') #print link.toxml('utf-8') + #print type(str) retStr=regexpPage.search(str) return retStr.group(1)