我有一个xml文件,我需要将其转换为utf8。 不幸的是,实体包含文字是这样的:Python将html ascii编码的文本转换为utf8
/mytext,
我使用的编解码器库文件转换为utf8,但是HTML实体将无法使用它。
有没有简单的方法来摆脱html编码?
感谢
我有一个xml文件,我需要将其转换为utf8。 不幸的是,实体包含文字是这样的:Python将html ascii编码的文本转换为utf8
/mytext,
我使用的编解码器库文件转换为utf8,但是HTML实体将无法使用它。
有没有简单的方法来摆脱html编码?
感谢
你可以把它传递给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>'
最近发布的低于响应类似的问题:
import HTMLParser # html.parser in Python 3
h = HTMLParser.HTMLParser()
h.unescape('/mytext,')
技术上这种方法是“内部“并且没有记录,但是它在API中已经有一段时间了,并且没有用下划线标出。
找到它here;还提到了其他方法,其中BeautifulSoup可能是最好的,如果你不介意它的“沉重”。
http://stackoverflow.com/questions/37486/filter-out-html-tags-and-resolve-entities-in-python – kechapito 2012-02-28 17:56:16
你可以通过unescape首先传递原始文件吗? – jterrace 2012-02-28 17:56:16