(Python 3.2)etreeでiterdescendants()を使用している場合、ツリーを変更しても問題ありませんか?
XMLを解析するのに私はetree
を使用しています。これを行うには、再帰的にiterdescendants()
という文書を繰り返しています。だから、何かのように:たまに
for elem in doc.iterdescendants():
if elem.tag == "tag":
pass # Further processing
、私は後で再帰で処理されないようにしたい、子供を含む親タグを処理します。子供たちを破壊するのは大丈夫ですか?私の最初のテストで
は、私が試してみた:何らかの理由で
for child in elem.getchildren(): child.clear()
、これはすぐに処理されているからelem
後の要素になります。それは要素が削除されるようなものです。
私は、(それが親とその子を削除することではなく、同様に影響を受ける/スキップさから、親のそれ以降の兄弟にはなりません)働くこれを試してみました:
elem.clear()
誰かがこれについていくつかの光を当てることができますか?ありがとう、
あなたがそうした場合の動作は未定義です。 –