# importa a implementação minidom import xml.dom.minidom # Cria o documento doc = xml.dom.minidom.Document() # Para ler um documento que já existe # doc = xml.dom.minidom.parse('caninos.xml') # Cria os elementos root = doc.createElement('Canino') lobo = doc.createElement('Lobo') raposa = doc.createElement('Raposa') coiote = doc.createElement('Coiote') cachorro = doc.createElement('Cachorro') # Cria os atributos cachorro.setAttribute('nome', 'Bandit') cachorro.setAttribute('raca', 'Labrador') cachorro.setAttribute('cor', 'Branco') # Cria a estrutura doc.appendChild(root) root.appendChild(lobo) root.appendChild(raposa) lobo.appendChild(coiote) lobo.appendChild(cachorro) # Para acrescentar texto ao elemento # tex = doc.createTextNode('Melhor amigo do homem...') # cachorro.appendChild(tex) # Mostra o XML formatado print doc.toprettyxml() import xml.sax # A classe processa a árvore XML class Handler(xml.sax.handler.ContentHandler): def __init__(self): xml.sax.handler.ContentHandler.__init__(self) self.prefixo = '' # É chamado quando uma novo tag é encontrada def startElement(self, tag, attr): self.prefixo += ' ' print self.prefixo + 'Elemento:', tag for item in attr.items(): print self.prefixo + '- %s: %s' % item # É chamado quando texto é encontrado def characters(self, txt): if txt.strip(): print self.prefixo + 'txt:', txt # É chamado quando o fim de uma tag é encontrada def endElement(self, name): self.prefixo = self.prefixo[:-2] parser = xml.sax.make_parser() parser.setContentHandler(Handler()) parser.parse('caninos.xml') from xml.etree.ElementTree import Element, ElementTree root = Element('Canino') lobo = Element('Lobo') raposa = Element('Raposa') coiote = Element('Coiote') cachorro = Element('Cachorro', nome='Bandit', raca='Labrador', cor='Branco') root.append(lobo) root.append(raposa) lobo.append(coiote) lobo.append(cachorro) ElementTree(root).write('caninos.xml') from xml.etree.ElementTree import ElementTree tree = ElementTree(file='caninos.xml') root = tree.getroot() # Lista os elementos abaixo do root print root.getchildren() # Encontra o lobo lobo = root.find('Lobo') # Encontra o cachorro cachorro = lobo.find('Cachorro') print cachorro.tag, cachorro.attrib # Remove a raposa root.remove(root.find('Raposa')) print root.getchildren()