def setPage(self, url): ref = url.getRef() protocol = url.getProtocol() the_file = url.getFile() if protocol != "file" or the_file.endswith("front.html"): url = self.homeUrl the_file = url.getFile() if self.cached_pages.has_key(the_file): if self.htmlPane.getDocument( ) != self.cached_pages[the_file]: # or ref: #self.htmlPane.setDocument( self.fakeDoc ) self.htmlPane.setDocument(self.cached_pages[the_file]) else: try: doc = self.documentBuilder.parse(url.getContent()) except java.lang.Exception, x: x.printStackTrace() return self.goHome() style = doc.getElementsByTagName("style") style_list = [] for x in xrange(style.length): node = style.item(x) style_list.append(node) for x2 in style_list: parent = x2.getParentNode() parent.removeChild(x2) meta = doc.getElementsByTagName("meta") meta_list = [] for x3 in xrange(meta.length): mnode = meta.item(x3) meta_list.append(mnode) for x4 in meta_list: parent = x4.getParentNode() parent.removeChild(x4) trans = transform.TransformerFactory.newInstance().newTransformer() dsource = tdom.DOMSource(doc) sw = io.StringWriter() sr = stream.StreamResult(sw) trans.transform(dsource, sr) ekit = self.htmlPane.getEditorKit().clone() s = sw.toString() spot = s.find("\n") s = s[spot:] # remove the xml prolog... sr = io.StringReader(s) hdoc = ekit.createDefaultDocument() hdoc.setBase(url) try: ekit.read(sr, hdoc, 0) except java.lang.Exception, x: x.printStackTrace() return self.goHome()
def resolveEntity( self, arg1, arg2 ): ins = sax.InputSource() bais = io.ByteArrayInputStream([]) ins.setByteStream( bais ) sr = io.StringReader( "" ) ins.setCharacterStream( sr ) ins.setPublicId( arg1 ) ins.setSystemId( arg2 ) return ins
def getLeoOutline2(self, s, reassignIndices=True): self.usingClipboard = True self.fileBuffer = s self.fileIndex = 0 self.tnodesDict = {} self.descendentUnknownAttributesDictList = [] #if not reassignIndices: if reassignIndices: #@ << recreate tnodesDict >> #@+node:zorcanda!.20050912152326.1:<< recreate tnodesDict >> nodeIndices = g.app.nodeIndices self.tnodesDict = {} for t in self.c.all_unique_tnodes_iter(): tref = t.fileIndex if nodeIndices.isGnx(tref): tref = nodeIndices.toString(tref) self.tnodesDict[tref] = t if 0: print '-' * 40 for key in self.tnodesDict.keys(): print key, self.tnodesDict[key] #@nonl #@-node:zorcanda!.20050912152326.1:<< recreate tnodesDict >> #@nl try: import org.xml.sax as sax import javax.xml.parsers as jparse import java.io as io #data = binascii.unhexlify( bdata ) dbf = jparse.DocumentBuilderFactory.newInstance() db = dbf.newDocumentBuilder() sr = io.StringReader(s) ins = sax.InputSource(sr) doc = db.parse(ins) leo_file = doc.getDocumentElement() cnodes = leo_file.getChildNodes() elements = {} for z in xrange(cnodes.length): element = cnodes.item(z) elements[element.getNodeName()] = element #vnodes = elements[ 'vnodes' ] #v = self.getVnodes2( vnodes, reassignIndices ) #self.getXmlVersionTag() # leo.py 3.0 #self.getXmlStylesheetTag() # 10/25/02 #self.getTag("<leo_file>") # <leo_file/> is not valid. #self.getClipboardHeader() #self.getVnodes(reassignIndices) #self.getTnodes() #self.getTag("</leo_file>") tnodes_element = elements['tnodes'] tchildren = tnodes_element.getElementsByTagName("t") tnodes = {} for z in xrange(tchildren.length): tnode_element = tchildren.item(z) tx = tnode_element.getAttribute("tx") atnode = self.newTnode(tx) atnode.bodyString = tnode_element.getTextContent() #v = self.finishPaste(reassignIndices) vnodes = elements['vnodes'] v = self.getVnodes2(vnodes, reassignIndices) except invalidPaste, ip: v = None g.es("Invalid Paste Retaining Clones", color="blue")
def _fromXML(xml, version=1.0): """Parses a XML string into a filter object.""" ogc, ogcconfig = _ogc(version) parser = Parser(ogcconfig) return parser.parse(io.StringReader(xml))