6

projectxml という etree オブジェクトがあります。

projetxml type <type 'lxml.etree._Element'>

ディスクに保存する必要があるため、要素ツリーに変換します。

savedxml=et.ElementTree(projetxml)
savedxml.write('/home/simon/Vysis.xml')

別のスクリプトは、Vysis.xml と同じ種類の他の 2 つのファイルをロードする必要がありました。

vysis=et.parse('/home/simon/Vysis.xml')
asi=et.parse('/home/simon/ASI.xml')
psi=et.parse('/home/simon/PSI.xml')

現在、asi、psi、および vysis lxml オブジェクトのタイプは次のとおりです。

<lxml.etree._ElementTree object at 0xa7eaf8c>

私の問題は、私がこれ以上できないことです:

R=et.Element('DataBase')
R.append(asi)
R.append(psi)
R.append(vysis)

エラーのため:

R.append(asi)
  File "lxml.etree.pyx", line 697, in lxml.etree._Element.append (src/lxml  /lxml.etree.c:35471)
TypeError: Argument 'element' has incorrect type (expected lxml.etree._Element, got lxml.etree._ElementTree)

私は2つの解決策があると思います。最初の方法は、etree.Element を etree.ElementTree に変換して「直接」保存することを避けることですが、方法がわかりません。2番目の解決策は、etree.ElementTreeをetree.Elementタイプに逆変換することです...xmlオブジェクトを保存/ロードするためのクリーンなソリューションが必要ですか?

4

1 に答える 1