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
def load(filename): log = logging.getLogger("input.planitLoader.load") doc = FromXmlFile(filename) rootEL = doc.getElementsByTagName("project")[0] return loadProject(rootEL)
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)
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
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