用Python中的Elementtree解析RSS
如何使用Python中的Elementtree在XML中搜索特定于命名空间的标记 我有一个XML/RSS文档,如:用Python中的Elementtree解析RSS,python,xml,rss,elementtree,Python,Xml,Rss,Elementtree,如何使用Python中的Elementtree在XML中搜索特定于命名空间的标记 我有一个XML/RSS文档,如: <?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:d
<?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>
我得到一个错误:
SyntaxError: prefix 'wp' not found in prefix map
搜索任何非特定于名称空间的字段都可以。我做错了什么?您需要这样做,或者使用iterparse直接处理事件,或者在解析之前显式声明您感兴趣的前缀。根据您试图做什么,我承认在我比较懒的时候,我只是在解析XML之前用字符串替换去掉所有前缀
编辑:这毫无意义。命名空间前缀在父标记中定义。我不需要预先解析我的RSS文档,这样我就可以将名称空间输入到我的RSS解析器中……我不是在和你争论,我只是说这就是我解决问题的方法。
SyntaxError: prefix 'wp' not found in prefix map