def parse_xml(self, readsize=16384): if not self.path: return elements = [] builder = SnippetsTreeBuilder( \ lambda node: elements.append((node, True)), \ lambda node: elements.append((node, False))) parser = et.XMLTreeBuilder(target=builder) self.insnippet = False try: f = open(self.path, "r") while True: data = f.read(readsize) if not data: break parser.feed(data) for element in elements: yield element del elements[:] f.close() except IOError: self.ok = False
def parse_xml(xml): document = ET.ElementTree() if isinstance(xml, unicode): xml = xml.encode('utf-8') if isinstance(xml, (basestring, buffer)): from io import BytesIO xml = BytesIO(bytes(xml)) document.parse(xml, ET.XMLTreeBuilder()) return document.getroot()
def parseFile(file): treeBuilder = ElementTree.TreeBuilder(element_factory=SimpleElementTreeVar) xmlTreeBuilder = ElementTree.XMLTreeBuilder(target=treeBuilder) if (not hasattr(file, 'read')): ourFile = open(file) xmlTreeBuilder.feed(ourFile.read()) ourFile.close() else: xmlTreeBuilder.feed(file.read()) return xmlTreeBuilder.close()
def __init__(self, file=None, tag='global', **extra): if isinstance(file, basestring): file = os.path.expanduser(file) if file is None: top_level_elt = XmlList(tag=tag, **extra) top_level_elt.text = top_level_elt.tail = '\n' ElementTree.ElementTree.__init__(self, element=top_level_elt) else: ElementTree.ElementTree.__init__(self) self.parse(source=file, parser=ElementTree.XMLTreeBuilder( target=ElementTree.TreeBuilder(XmlList))) return
def __init__(self, xmlin, out, param={}): self.counter = 0 self.constants = {} self.lines = [] h = open(xmlin, 'r') xml = h.read() h.close() builder = ET.XMLTreeBuilder() builder.feed(xml) tree = builder.close() self.out = out self.__walk(tree, None) self.__write()
def __init__(self, client): self.client = client self.parser = etree.XMLTreeBuilder( target=self) #XMLParser(target=self) self.parser.feed(b'') self.__nsmap__ = __nsmap__
def parseComment(text): parser = ElementTree.XMLTreeBuilder() parser.feed(text.encode('utf8')) root = parser.close() return root
#!/usr/bin/env python2.7 # -*- coding: utf8 -*- """Filter out OACI areas depending on geographic position""" from math import isnan from optparse import OptionParser from xml.etree import ElementTree as ET from pprint import pprint import sys import time parser = ET.XMLTreeBuilder() prefix = 'http://earth.google.com/kml/2.2' def PF(s): return '{%s}%s' % (prefix, s) def m2f(m): return float(m) / 0.3048 def f2m(m): return float(m) * 0.3048 def parse(filename): print >> sys.stderr, "Parsing..." with filename and open(filename, 'rt') or sys.stdin as f: et = ET.parse(f)
def BuildTree(xmlstring): parser = ElementTree.XMLTreeBuilder() parser.feed(xmlstring) return parser.close()
def main(): parser = ET.XMLTreeBuilder(target=OutlinerParser()) parser.feed(sys.stdin.read()) parser.close()
def __init__(self): self.tree_builder = _TerminationDetectingTreeBuilder() self.xml_tree_builder = et.XMLTreeBuilder(target=self.tree_builder)
except ImportError: raise ImportError("You need ElementTree") if __name__ == "__main__": mk = file('MochiKit/MochiKit.js').read() modules = map( str.strip, re.search(r"""(?mxs)MochiKit.MochiKit.SUBMODULES\s*=\s*\[([^\]]+)""", mk).group(1).replace(' ', '').replace('"', '').split(',')) root = ET.Element("pages") for modulename in modules: tb = ET.XMLTreeBuilder() tb.entity['nbsp'] = " " doc = ET.parse("doc/html/MochiKit/%s.html" % modulename, parser=tb) mod = ET.SubElement(root, "page") mod.attrib.update( dict(title="MochiKit.%s" % modulename, type="package", url="http://mochikit.com/doc/html/MochiKit/%s.html" % modulename)) for a in doc.findall("//{http://www.w3.org/1999/xhtml}a"): if a.attrib.get("class", None) == "mochidef reference": fun = ET.SubElement(mod, "page") fun.attrib.update( dict(title=a.text),
def end(self, tag): # Ignore closing tags pass def data(self, data): # Ignore data inside nodes pass def close(self): # Nothing special to do here return print "Using a custom tree-building class:" target = PodcastListToCSV(sys.stdout) with closing(ElementTree.XMLTreeBuilder(target=target)) as parser: with closing(open('data/7.6-xml.etree.ElementTree_podcasts.opml', 'r')) as f: for line in f: parser.feed(line) print ## 7.6.7 Parsing Strings # To work ith smaller bits of XML text, use XML() with the string containing the XML as the only argument xml_string_to_parse = """ <root> <group> <child id="a">This is child "a".</child> <child id="b">This is child "b".</child> </group> <group>