我有一個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