【发布时间】:2011-10-12 11:42:49
【问题描述】:
我正在使用 Universal feed Parser 解析 RSS 内容。有时在描述标签中 我得到如下所示:
<!--This is the XML comment -->
<p>This is a Test Paragraph</p></br>
<b>Sample Bold</b>
<m:Table>Sampe Text</m:Table>
为了删除 HTML 元素/标签,我使用以下正则表达式。
pattern = re.compile(u'<\/?\w+\s*[^>]*?\/?>', re.DOTALL | re.MULTILINE | re.IGNORECASE | re.UNICODE)
desc = pattern.sub(u" ", desc)
这有助于删除 HTML 标记,但不能删除 xml cmets。如何删除元素和 XML 注释?
【问题讨论】:
-
这还不够吗?
r'<.*?>' -
正确的方法是使用 XML 解析器,就像 @duffymo 说的那样。试试BeautifulSoup
-
在这种情况下,解析器是多余的。你不需要知道树结构、标签命名空间、名称和属性,只是为了把它们扔掉,对吗?哦,还有@rplnt,你忘了 CDATA (
<![CDATA[some text <this is not a tag!> some more text]]>)。