【发布时间】:2012-12-09 00:15:30
【问题描述】:
与我真正想提出的问题相比,标题相当简单,但我不太确定如何措辞。 对于我正在制作的一个 XML 解析模块,我需要它根据 XML 文档的确切结构添加键和属性,例如:
<Person>
<Name>Someone</Name>
<Age>25</Age>
<Skills>
<Skill>Projectile vomiting</Skill>
</Skills>
</Person>
应该返回:
{ "Person" : { "Name" : "Someone", "Age" : "25", "Skills" : { "Skill" : "Projectile vomiting"}}}
...程序不知道 XML 文档的确切结构。它可以有任意数量的属性,任意数量的嵌套属性。
使用
Dict["key"]["anotherkey"]["yetanotherkey"] = Value
不起作用,因为我不知道 XML 文档是否使用 3 个属性嵌套,或者这些属性嵌套是否包含更多嵌套。
我的想法是每次解析器遇到嵌套的开头时“打开一个节点”,换句话说,如果解析器到达
<Skill>
它会在
中分配属性<Skills> and </Skills>
到 Dict["Person"]["Skills"],当
</Skills>
遇到了,它会“关闭”节点,并继续为 Dict["Person"] 分配属性,但我不知道如何实现这一点(但我可以获取所有的值、属性和节点文件)。
如何在不知道 XML 文档的确切结构的情况下以正确的格式嵌套字典,如上所示?
【问题讨论】:
-
你的问题是什么?
-
对帖子进行了编辑。对不起!
-
将 XML 结构存储在嵌套字典中是否重要?如果是这样,为什么?在 Python 中使用 XML 有更方便的方法。
标签: python loops dictionary nest