예제 #1
0
    def __init__(self, filename, places):

        root = FromXmlFile(filename)

        walker = root.createTreeWalker(root.documentElement,
                                       NodeFilter.SHOW_ELEMENT, None, 0)

        while 1:
            nodeName = walker.currentNode.nodeName
            attribs = walker.currentNode.attributes

            if nodeName == 'game':
                self.startingPlace = attribs['startingPlace'].value

            elif nodeName == 'place':
                placeName = attribs['name'].value
                desc = attribs['description'].value
                currentPlace = Place(placeName, desc)
                places[placeName] = currentPlace

            elif nodeName == 'object':
                currentPlace.addObject(attribs['name'].value)

            elif nodeName == 'connection':
                currentPlace.addConnection(attribs['place'].value)

            next = walker.nextNode()

            if next is None: break
예제 #2
0
def load(filename):
    log = logging.getLogger("input.planitLoader.load")

    doc = FromXmlFile(filename)

    rootEL = doc.getElementsByTagName("project")[0]

    return loadProject(rootEL)
예제 #3
0
    def __init__(self, file=None):
        if type(file) == StringType:
            self._dom = FromXmlFile(file)
        elif type(file) == FileType:
            self._dom = FromXmlStream(file)
        else:
            raise ValueError, \
                  "XML_Objectify must be initialized with filename or file handle"

        self._processing_instruction = {}

        for child in self._dom.childNodes:
            if child.nodeType == Node.PROCESSING_INSTRUCTION_NODE:
                self._processing_instruction[child.nodeName] = child.nodeValue
            elif child.nodeType == Node.ELEMENT_NODE:
                self._root = child.nodeName
        self._PyObject = pyobj_from_dom(self._dom)
예제 #4
0
class XML_Generator(object):
    _logger = logging.getLogger('XML_Generator')

    def __init__(self, template, nsmap=None):
        self.root = etree.fromstring(template)
        self.nsmap = nsmap

    # end def __init__

    def generate(self, **scope_dict):
        if self.nsmap:
            root = etree.Element(self.root.tag,
                                 self.root.attrib,
                                 nsmap=self.nsmap)
        else:
            root = etree.Element(self.root.tag, self.root.attrib)
        self.out = etree.ElementTree(root)
        self._iterate(self.root, root, scope_dict)
        return self.out

    # end def generate

    def write(self, xml_file, pretty=True):
        from xml.dom.ext import PrettyPrint
        from xml.dom.ext.reader.Sax import FromXmlFile

        try:
            f = open(xml_file, "w")
            try:
                self.out.write(f)
            finally:
                f.close()
        except (SystemExit, KeyboardInterrupt), exc:
            raise

        if pretty:
            doc = FromXmlFile(xml_file)
            try:
                f = open(xml_file, "w")
                try:
                    PrettyPrint(doc, f)
                finally:
                    f.close()
            except (SystemExit, KeyboardInterrupt), exc:
                raise
예제 #5
0
from xml.dom.ext.reader.Sax import FromXmlFile
from xml.dom.NodeFilter import NodeFilter

root = FromXmlFile('problem1.xml')

walker = root.createTreeWalker(root.documentElement,
                              NodeFilter.SHOW_ELEMENT, None, 0)

while 1:
    nodeName = walker.currentNode.nodeName

    if nodeName == 'game':
        print("Hey, I found the game tag!")
        
    next = walker.nextNode()
    
    if next is None: break