XMLファイル – 2
by ますお
早速やってみたのですが,ハマりました.
どうも腑に落ちないので,ちょっと書いてみようと思います.
次のようなXMLファイルがあるとします.
<elem1> <elem2> </elem2> </elem1>
このファイルを二つコピーして,test1.xml,test2.xmlとします.中身は全く同じ物です.
これを以下のようにしてparseすると,test1.xmlは平気なんですが,test2.xmlの処理中にエラーが出てしまいます.
files = ['test1.xml', 'test2.xml']
psr = xml.parsers.expat.ParserCreate()
for f in files:
file = open(f, 'r')
psr.ParseFile(file)
file.close()
ところが,以下だと平気なんです.
files = ['test1.xml', 'test2.xml']
for f in files:
psr = xml.parsers.expat.ParserCreate()
file = open(f, 'r')
psr.ParseFile(file)
file.close()
どうも納得行かないので,PerlのXML::Parserで同じXMLファイルをforeach内で読ませてみた所,エラーは出ませんでした.
parserオブジェクトを毎回作るなんてやりたくないんですけど,使い方が間違っているのでしょうか?それとも単にモジュールのバグなんでしょうか?