SimpleXmlElement

Importante: estas herramientas se han empaquetado en una nueva biblioteca  PySimpleSOAP. Ver nueva página:  SimpleXmlElement (incluyendo nuevas características y mejoras)

SimpleXmlElement es una especie de port de SimpleXMLElement de PHP, que es una herramienta para trabajar con XML de manera simple y orientada a objetos.

Esta herramienta se reimplementó en python encapsulando xml.dom.minidom: ver pyafip/ws/simplexml.py

La principal diferencia es que no convierte los tipos (int, long, etc.) de forma predeterminada. Siempre devuelve elementos xml (texuales), que hay que convertirlos explicitamente.

Uso

  • Crear un objeto SimpleXMLElement pasandole el texto XML a analizar
  • Navegar por el objeto:
    • Las etiquetas (tags) se convierten en atributos
    • Los atributos de los tag se convertirían en un diccionario (no implementado)
    • Los atributos repetitivos se convierten a listas
  • Agregar un nuevo tag con el método addChild
  • Convertir nuevamente a XML con el método asXML

Ejemplo

>>> from simplexml import SimpleXMLElement
>>> span = SimpleXMLElement('<span><a href="google.com">google</a><prueba><i>1</i><float>1.5</float></prueba></span>')
>>> str(span.a)
'google'
>>> int(span.prueba.i)
1
>>> float(span.prueba.float)
1.5
>>>
>>> span = SimpleXMLElement('<span><a href="google.com">google</a><a>yahoo</a><a>hotmail</a></span>')
>>> for a in span.a: print str(a)
...     
google
yahoo
hotmail
>>> span.addChild('a','altavista')
'altavista'
>>> span.asXML()
'<?xml version="1.0" encoding="utf8"?><span><a href="google.com">google</a><a>yahoo</a><a>hotmail</a><a>altavista</a></span>'