3

非常に大きな (1.8GB) XML ドキュメントがあります。タグ付きの要素の数を簡単に見つけたいと思います<Product>

私はこれまでのところ持っています:

context = etree.iterparse('./test.xml', tag='Product')
num_elems = 0
for event, elem in context:
    num_elems += 1
print num_elems

それはうまくいきますが、それを行うより速い方法はありますか?

4

1 に答える 1

1

これは機能するので、メモリの使用は問題ではないと思います(要素を反復しながらプルーニングしない限り、メモリ内にファイル全体のツリーを構築します)iterparse libxmlその場合、Python での反復とカウントの手間を省き、C でLXML/ に処理させます。

tree = etree.parse("./test.xml")
num_elems = tree.xpath("count(//Product)")    # note: returns a float
于 2012-05-22T13:59:30.170 に答える