XMLを扱う
NewsMLというフォーマットを扱うために、検索してみると、Java, Perl にはライブラリが
あるようだ。
Syndication-NewsML-0.10
今回は、Python でやりたかったが、なさそうだったので、自分で作成することに。
Using Non-Standard Encodings in cElementTree
WebFaction - Coming soon: Another fine website hosted by WebFaction
19.7. xml.dom.minidom — Lightweight DOM implementation — Python v2.7.3 documentation
xml.dom.minidom を用いた XML の取り扱い
PythonでElementTreeを使ってXMLを処理する方法 - Sticker@Something
これらのサイトを参考に作成してみた。とはいっても、まだ、触りだけ。
ライブラリ、どこかにないかな・・・。
import codecs import xml.etree.cElementTree as ET tree = None # http://effbot.org/zone/celementtree-encoding.htm def codec_escape_ET_parser(file, encoding): f = codecs.open(file, "r", encoding) p = ET.XMLParser(encoding="utf-8") while 1: s = f.read(65536) if not s: break p.feed(s.encode("utf-8")) return ET.ElementTree(p.close()) tree = codec_escape_ET_parser("example.xml","Shift_JIS") """ 記事のみ """ print tree.find("/NewsItem/NewsComponent/NewsLines/HeadLine").text print tree.find("/NewsItem/NewsComponent/NewsLines/DateLine").text print tree.find("/NewsItem/NewsComponent/NewsLines/CreditLine").text print tree.find("/NewsItem/NewsComponent/NewsLines/CopyrightLine").text print tree.find("/NewsItem/NewsManagement/Status").get("FormalName")
やっつけでここまでできるなんて便利だ・・・。