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」のようなものを想像します...