是否可以根据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)
这可行吗?谁能建议一种方法/工具来做到这一点? 预先感谢您的考虑。
最佳答案
用一些 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 .
关于Python 类对象和 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12898851/