コード例 #1
0
    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
コード例 #2
0
ファイル: utils.py プロジェクト: amottola/slew
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()
コード例 #3
0
ファイル: simpleElementTree.py プロジェクト: g2p/SimpleTAL
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()
コード例 #4
0
 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
コード例 #5
0
    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()
コード例 #6
0
ファイル: logxmpp.py プロジェクト: m00zh33/dionaea
 def __init__(self, client):
     self.client = client
     self.parser = etree.XMLTreeBuilder(
         target=self)  #XMLParser(target=self)
     self.parser.feed(b'')
     self.__nsmap__ = __nsmap__
コード例 #7
0
ファイル: bilidown.py プロジェクト: bGN4/DjangoAzure
def parseComment(text):
    parser = ElementTree.XMLTreeBuilder()
    parser.feed(text.encode('utf8'))
    root = parser.close()
    return root
コード例 #8
0
ファイル: oaci.py プロジェクト: ebouaziz/miscripts
#!/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)
コード例 #9
0
ファイル: xmlwrapper.py プロジェクト: pombredanne/verbatim
def BuildTree(xmlstring):
    parser = ElementTree.XMLTreeBuilder()
    parser.feed(xmlstring)
    return parser.close()
コード例 #10
0
def main():
    parser = ET.XMLTreeBuilder(target=OutlinerParser())
    parser.feed(sys.stdin.read())
    parser.close()
コード例 #11
0
ファイル: xml_util.py プロジェクト: lselinger/pyxcli
 def __init__(self):
     self.tree_builder = _TerminationDetectingTreeBuilder()
     self.xml_tree_builder = et.XMLTreeBuilder(target=self.tree_builder)
コード例 #12
0
ファイル: gotapi.py プロジェクト: coati-00/blackrock
        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>