Python:xml.etree.ElementTree, RDF titleの取得

前回の記事で、xml.etree.ElementTree モジュールを利用する際には、パス指定の名前空間部分が必要とわかったので、今回は、ローカルな RDFファイルから item 要素から title を取り出してみる。

rootTree.findtext('.//{http://purl.org/rss/1.0/}title')

if __name__ == "__main__":
  import xml.etree.ElementTree as etree
  source='sample.rdf'
  rootTree=etree.parse(source)
  titles = rootTree.findall('.//{http://purl.org/rss/1.0/}title')
  for i in titles:
    print i.text.encode('utf-8','ignore') 

なお、item の title だけ取得したい場合は、次のとおり。

if __name__ == "__main__":
  import xml.etree.ElementTree as etree
  source='sample.rdf'
  rootTree=etree.parse(source)
  titles = rootTree.findall('.//{http://purl.org/rss/1.0/}item{http://purl.org/rss/1.0/}title')
  for i in titles:
    print i.text.encode('utf-8','ignore') 

'./{http://purl.org/rss/1.0/}item{http://purl.org/rss/1.0/}title'でも
'/{http://purl.org/rss/1.0/}item{http://purl.org/rss/1.0/}title'でも
'{http://purl.org/rss/1.0/}item{http://purl.org/rss/1.0/}title'でも
OK。

次回は、urlfetch を使って、ネット上の RDF ファイルを扱う。