Jak wyszukiwać znaczniki specyficzne dla przestrzeni nazw w XML za pomocą Elementtree w Pythonie?Parsowanie RSS z Elementtree w Pythonie
Mam dokument XML/RSS jak:
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:wp="http://wordpress.org/export/1.0/"
>
<channel>
<title>sometitle</title>
<pubDate>Tue, 28 Aug 2012 22:36:02 +0000</pubDate>
<generator>http://wordpress.org/?v=2.5.1</generator>
<language>en</language>
<wp:wxr_version>1.0</wp:wxr_version>
<wp:category><wp:category_nicename>apache</wp:category_nicename><wp:category_parent></wp:category_parent><wp:cat_name><![CDATA[Apache]]></wp:cat_name></wp:category>
</channel>
</rss>
Ale gdy próbuję i znaleźć wszystkie "WP: kategoria" tagi, wykonując:
import xml.etree.ElementTree as xml
tree = xml.parse(fn)
doc = tree.getroot()
categories = doc.findall('channel/wp:category')
pojawia się błąd:
SyntaxError: prefix 'wp' not found in prefix map
Wyszukiwanie dowolnych pól niezwiązanych z przestrzenią nazw działa dobrze. Co ja robię źle?
To nie ma sensu. Przedrostki przestrzeni nazw są zdefiniowane w tagu nadrzędnym. Nie musiałbym wstępnego parsowania mojego dokumentu RSS, żeby móc przesłać paszę przestrzeni nazw do mojego parsera RSS ... –
Cerin
Nie kłócę się z tobą, po prostu mówię, że tak to obejdzie. – Tom