現在、ElementTreeを使用して何千ものオブジェクトが含まれているXMLファイルを解析しています。 XMLはこのようになります(注:数千のオブジェクトがあります):Python:Element Treeを使った効率的なXMLルックアップ
def objattribs(objname,objects):
for o in objects:
name = o.find('./Name').text
if name = objname:
'do something'
objname = 'SomeObject'
objects = objects_XML.findall('./object')
objattribs(objname,objects)
私がいる問題があることである:
<objects>
<object>
<Name> Name 1 </Name>
<attrib1> Attrib1 </attrib1>
<attrib2> Attrib2 </attrib2>
</object>
</objects>
私が何をやったかは、次のように関数を作成していますこの作品は、私のコードは、そのXMLですべてのオブジェクトの名前を見つけるため、非常に遅い実行する原因になっている:
name = o.find('./Name').text
は、この操作を行うと、私のプログラムをスピードアップするためのより良い方法はありますか? ElementTreeのでサポートされているよう
あなたは、ドットスラッシュなしでちょうどo.find(「名前」)テキストを、試したことがありますか? Findはタグ名またはパスに一致することができます。タグ名を使用できるパスを使用しています。これは高速かもしれません。 – jimhark