我有一个xml文件,我需要将其转换为utf8。 不幸的是,实体包含这样的文本:
/mytext,
我正在使用编解码器库将文件转换为utf8,但html实体无法使用它。
有没有一种简单的方法可以摆脱html编码?
由于
答案 0 :(得分:3)
您可以在将文件文本传递给XML解析器之前通过unescape函数传递文件。
或者,如果您只是解析HTML,lxml's http parser会为您执行此操作:
>>> import lxml.html
>>> html = lxml.html.fromstring("<html><body><p>/mytext,</p></body></html>")
>>> lxml.html.tostring(html)
'<html><body><p>/mytext,</p></body></html>'
答案 1 :(得分:1)
最近发布了以下针对类似问题的回复:
import HTMLParser # html.parser in Python 3
h = HTMLParser.HTMLParser()
h.unescape('/mytext,')
从技术上讲,这种方法是“内部的”并且没有记录,但它已经在API中存在了很长一段时间,并且没有标记为前导下划线。
找到它here;还提到了其他方法,如果你不介意它的“沉重感”,BeautifulSoup可能是最好的。