Python类对象和XML

时间:2012-10-15 15:25:05

标签: python xml object xml-parsing lxml

是否可以根据XML文件的层次结构内容自动生成python类对象? 让我解释一下我的意思。假设我有一个XML文件,其中包含(为简单起见)以下内容:

<breakfast_menu>
   <food>
     <name>Belgian Waffles</name>
     <price>$5.95</price>
     <description>blah blah...etc...</description>
     <calories>650</calories>
   </food>
</breakfast_menu>

我喜欢XML呈现数据和属性的方式,但我想使用Python,所以我问是否有一组实用程序可以读取上面的文件并创建类似的东西:

class breakfast_menu():
   food = food(self, name="Belgian Waffles", price="$5.95", description="blah blah...etc...", calories=650)
这是可行的吗?谁能建议一种方法/工具来做到这一点? 提前感谢您的考虑。

2 个答案:

答案 0 :(得分:5)

使用一些XML解析器(例如ElementTree)解析它。将每个食品标签中的内容添加到Python字典中。  在将字典提供给函数时解压缩字典,如下所示:

food(**my_dictionary)

如果字典包含my_dictionary = {'name':'Belgian Waffles', 'price':'$5.95'}之类的内容,则调用food(**my_dictionary)将与调用food(name = 'Belgian Waffles', price = '$5.95')相同。有关详细信息,请查看Understanding kwargs in Python

答案 1 :(得分:-1)

听起来你需要像ElementTree XML API这样的东西:http://docs.python.org/library/xml.etree.elementtree.html