さて、これは私を少し狂わせ始めています。Python 用の xml/xpath ライブラリをいくつか試しましたが、臭い「タイトル」要素を取得する簡単な方法がわかりません。
最新の試みは次のようになります (Amara を使用):
def view(req, url):
req.content_type = 'text/plain'
doc = amara.parse(urlopen(url))
for node in doc.xml_xpath('//title'):
req.write(str(node)+'\n')
しかし、それは何も出力しません。私の XML は次のようになります: http://programanddesign.com/feed/atom/
//*
代わりに試してみると、//title
すべてが期待どおりに返されます。XML にtitle
s が含まれていることはわかっていますが、何が問題なのですか? 名前空間か何かですか?もしそうなら、どうすれば修正できますか?
プレフィックスなしで動作するようには見えませんが、これは動作します:
def view(req, url):
req.content_type = 'text/plain'
doc = amara.parse(url, prefixes={'atom': 'http://www.w3.org/2005/Atom'})
req.write(str(doc.xml_xpath('//atom:title')))