Это сводит меня с ума, и я, вероятно, надолго взломал это, поэтому был бы признателен за некоторую помощь, чтобы предотвратить потерю / восстановление моего здравомыслия!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')
, слои вернут только все элементы слоя, что очень много и не имеет понятия глубины / иерархии какНасколько я могу понять, поскольку это делает рекурсивный поиск.
Следующий пост хорош, но не предоставляет концепции, которые мне нужны. Синтаксический анализ XML с Python и минидомом .Может кто-нибудь помочь с тем, как я мог бы пойти по этому поводу?Я могу опубликовать свой код, но он так взломан вместе / сломан, я не думаю, что он будет полезен ни человеку, ни животному!
Приветствия
Дейв