2012-07-04 15 views
6

por ejemplo, mi archivo XML contiene:¿Hay alguna forma o estructura en python para crear un modelo de objetos a partir de un xml?

<layout name="layout1"> 
    <grid> 
     <row> 
      <cell colSpan="1" name="cell1"/> 
     </row> 
     <row> 
      <cell name="cell2" flow="horizontal"/> 
     </row> 
    </grid> 
</layout> 

y quiero recuperar un objeto de la xml por ejemplo regresado estructura del objeto a ser así

class layout(object): 
    def __init__(self): 
     self.grid=None 
class grid(object): 
    def __init__(self): 
     self.rows=[] 
class row(object): 
    def __init__(self): 
     self.cels=[] 

Respuesta

4

que he encontrado mi respuesta me objetivar usada en el paquete lxml

este es un ejemplo de código:

from lxml import objectify 

root = objectify.fromstring(""" 
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <a attr1="foo" attr2="bar">1</a> 
    <a>1.2</a> 
    <b>1</b> 
    <b>true</b> 
    <c>what?</c> 
    <d xsi:nil="true"/> 
</root> 
""") 

print objectify.dump(root) 

imprime:

root = None [ObjectifiedElement] 
    a = 1 [IntElement] 
     * attr1 = 'foo' 
     * attr2 = 'bar' 
    a = 1.2 [FloatElement] 
    b = 1 [IntElement] 
    b = True [BoolElement] 
    c = 'what?' [StringElement] 
    d = None [NoneElement] 
     * xsi:nil = 'true' 
Cuestiones relacionadas