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