Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python中的Elementtree解析RSS_Python_Xml_Rss_Elementtree - Fatal编程技术网

用Python中的Elementtree解析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

如何使用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: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