Python feedparser не использует пространство имен atom / WordPress? - PullRequest
1 голос
/ 14 июля 2010

Я пытаюсь использовать feedparser (отличная библиотека) для анализа файлов экспорта WordPress, и (незначительное) несоответствие между версиями WordPress вызывает у меня огромную головную боль.

WordPress2.x не включает atom:link теги в вывод XML ( без_atom_tags.xml ).При анализе элементы пространства имен доступны без префикса:

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

XML из WordPress 3.x содержит теги atom:link ( with_atom_tags.xml )и вы должны префиксировать элементы пространства имен:

>>> 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.Не работает feedparser или я делаю это неправильно?Могу ли я сделать это без связки неприятного условного кода?

1 Ответ

0 голосов
/ 15 июля 2010

Не могли бы вы добавить недостающие пространства имен (atom / wp) в глобальный список поддерживаемых пространств имен в feedparser.py напрямую?

...