2012-07-04 10 views
6

per esempio il mio file XML contiene:C'è qualche modo o qualsiasi framework in python per creare un modello di oggetto da un xml?

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

e voglio recuperare un oggetto dal xml ad esempio tornati struttura dell'oggetto essere come questo

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=[] 

risposta

4

ho trovato la mia risposta I usate oggettivare in pacchetto lxml

questo è un codice di esempio:

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) 

esso stampa:

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'