例如我的xml文件包含:
<layout name="layout1">
<grid>
<row>
<cell colSpan="1" name="cell1"/>
</row>
<row>
<cell name="cell2" flow="horizontal"/>
</row>
</grid>
</layout>
我想从xml中检索一个对象 例如返回的对象结构就像这样
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=[]
答案 0 :(得分:4)
我找到了答案 我在lxml包中使用了objectify
这是一个示例代码:
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)
打印:
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'