21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

162 XML

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')

Saída:

Elemento: Canino

Elemento: Lobo

Elemento: Coiote

Elemento: Cachorro

- cor: Branco

- raca: Labrador

- nome: Bandit

Elemento: Raposa

Com o SAX não é necessário trazer o documento inteiro para a memória.

ElementTree

ElementTree é o mais “pythônico” dos três, representando uma estrutura XML

como uma árvore de elementos, que são tratados de forma semelhante às

listas, e nos quais os atributos são chaves, similar aos dicionários.

Exemplo de geração de XML com ElementTree:

from xml.etree.ElementTree import Element, ElementTree

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!