大きな xmlファイルを解析し、タグを出力ファイルに出力しようとしています。私はminidomを使用しています。私のコードは 30Mb のファイルでは問題なく動作しますが、より大きなファイルではメモリ エラーが発生します。そのため、ファイルの読み取りに bufferred を使用しましたが、目的の出力を取得できません。
XML ファイル
> <File> <TV>Sony</TV> <FOOD>Burger</FOOD> <PHONE>Apple</PHONE> </File>
> <File> <TV>Samsung</TV> <FOOD>Pizza</FOOD> <PHONE>HTC</PHONE> </File>
> <File> <TV>Bravia</TV> <FOOD>Pasta</FOOD> <PHONE>BlackBerry</PHONE> </File>
望ましい出力
ソニー、バーガー、アップル
サムスン、ピザ、HTC
ブラビア、パスタ、ブラックベリー
バッファで読み取ると、次のような出力が表示されます: -Sony
、Burger、Apple
Samsung、Piz
Bravia、Pasta、BlackBerry
while 1:
content = File.read(2048)
if not len(content):
break
else:
for lines in StringIO(content):
lines = lines.lstrip(' ')
if lines.startswith("<TV>"):
TV = lines.strip("<TV>")
tvVal = TV.split("</TV>")[0]
#print tvVal
w2.writelines(str(tvVal)+",")
elif lines.startswith("<FOOD>"):
FOOD = lines.strip("<FOOD>")
foodVal = FOOD.split("</FOOD>")[0]
#print foodVal
w2.writelines(str(foodVal)+",")
............................
...........................
seek()を試しましたが、それでも目的の出力を取得できませんでした。