【发布时间】:2011-02-05 18:28:14
【问题描述】:
这让我精神崩溃,而且我可能已经研究了很久,所以希望能得到一些帮助,以防止失去/恢复我的理智!基于食物的 xml 只是我希望实现的一个示例。
我有以下文件,我试图将其放入图表中,因此小麦和水果是深度为 0 的父母。印第安人是深度为 1 的小麦的孩子,依此类推。
每一层都有一些关键字。所以我想出来的是
layer, depth, parent, keywords
wheat, 1, ROOT, [bread, pita, narn, loaf]
indian, 2, wheat [chapati]
mumbai, 3, indian, puri
fruit, 1,ROOT, [apple, orange, pear, lemon]
这是一个示例文件 -
<keywords>
<layer id="wheat">
<layer id="indian">
<keyword>chapati</keyword>
<layer id="mumbai">
<keyword>puri</keyword>
</layer>
</layer>
<keyword>bread</keyword>
<keyword>pita</keyword>
<keyword>narn</keyword>
<keyword>loaf</keyword>
</layer>
<layer id="fruit">
<keyword>apple</keyword>
<keyword>orange</keyword>
<keyword>pear</keyword>
<keyword>lemon</keyword>
</layer>
</keywords>
所以这不是一个图表问题,我可以很容易地做到这一点。我正在努力解析 XML。
如果我做一个
xmldoc = minidom.parse(self.filename)
layers = xmldoc.getElementsByTagName('layer')
layers 只返回所有层元素,这太多了,据我所知,它没有深度/层次的概念,因为它进行递归搜索。
以下帖子很好,但没有提供我需要的概念。 XML Parsing with Python and minidom。任何人都可以帮助我解决这个问题吗?我可以发布我的代码,但它是如此被黑客攻击/从根本上被破坏,我认为它不会被人类或野兽使用!
干杯
戴夫
【问题讨论】:
-
使用递归将是最合乎逻辑的方式来做到这一点恕我直言。你为什么不想使用它?