5

Python を使用して XML ファイルから特定のタグを持つ要素を解析し、要素を含み、階層を保持する出力 Excel ドキュメントを生成しようとしています。

私の問題は、各要素 (どのパーサーが反復するか) がどれほど深くネストされているかを把握できないことです。

XML サンプルの抜粋 (3 つの要素、それらは任意にネストすることができます):

<A>
   <B>
      <C>
      </C>
   </B>
</A>
<B>
    <A>
    </A>
</B>

ElementTree を使用した次のコードは、要素を反復処理するのにうまく機能しました。しかし、ElementTree は、各要素のネストの深さを判断できないと思います。下記参照:

import xml.etree.ElementTree as ET

root = ET.parse('XML_file.xml')
tree = root.getroot()
for element in tree.iter():
    if element.tag in ("A","B","C"):
        print(element.tag)

これにより、要素 A、B、C のリストが正しい順序で取得されます。しかし、私は彼らのレベルの情報でそれらを印刷する必要があります.

だけでなく:

A
B
C
B
A

しかし、次のようなもの:

A
--B
----C
B
--A

これを行うには、各要素のレベルを取得する必要があります。これを簡単に実行できるPython用の適切なパーサーはありますか? 整数インデックスを返す「element.hierarchyLevel」のようなものを想像します...

4

2 に答える 2