PythonでXMLを触ってみる8 saxね
続いてSAXに入ります。
SAXはイベントドリブン方式なのでDOMのように一度メモリにドキュメントツリーを
読み込んでから処理をしないので大きなデータ処理に向きます。
まずは一番簡単なところです。
SampleS.xml
<?xml version="1.0" encoding="UTF-8"?> <cars> <car country="日本"> <name>乗用車</name> <price>150</price> <img file="car1.jpg" /> </car> <car country="日本"> <name>トラック</name> <price>500</price> <img file="car2.jpg" /> </car> <car country="アメリカ"> <name>オープンカー</name> <price>200</price> <img file="car3.jpg" /> </car> </cars>
sax1.py
#!/usr/bin/python # -*- coding: utf-8 -*- import xml.sax class SampleHandler1J(xml.sax.ContentHandler): def startDocument(self): print 'XML文書が開始しました。' def endDocument(self): print 'XML文書が終了しました。' p = xml.sax.make_parser() p.setContentHandler(SampleHandler1J()) p.parse('SampleS.xml')
実行結果
$ python sax1.py XML文書が開始しました。 XML文書が終了しました。