1

WordPress エクスポート ファイルを解析するためにfeedparser (優れたライブラリ)を使用しようとしています。

atom:linkWordPress 2.x は、XML 出力 ( without_atom_tags.xml ) にタグを含めません。解析すると、名前空間付きの要素はプレフィックスなしで利用できます。

>>> feed = feedparser.parse("without_atom_tags.xml")
>>> print feed.entries[0].comment_status
u'open'

WordPress 3.x の XMLにはタグ ( with_atom_tags.xml )含まれているため、名前空間要素のプレフィックスを付ける必要があります。atom:link

>>> feed = feedparser.parse("with_atom_tags.xml")
>>> feed.entries[0].wp_comment_status              # <-- Note wp_ prefix
u'open'
>>> feed.entries[0].comment_status
AttributeError: object has no attribute 'comment_status'

興味深いことに、xmlns:atom="http://www.w3.org/2005/Atom"ルート RSS 要素 ( with_atom_tags_and_namespace.xml ) に追加する場合、プレフィックスは必要ありません。

XML を変更せずに、これらのさまざまな形式をすべて解析する必要があります。フィードパーサーが壊れていますか、それとも間違っていますか? 厄介な条件付きコードの束なしでこれを行うことはできますか?

4

1 に答える 1

0

欠落している名前空間 (atom/wp) を、feedparser.py でサポートされている名前空間のグローバル リストに直接追加していただけますか?

于 2010-07-14T20:28:56.850 に答える