国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

怎么用lxml處理xml時(shí)的字符編碼問(wèn)題

發(fā)布時(shí)間:2021-09-04 11:55 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 開(kāi)發(fā)技術(shù)

本篇內容主要講解“怎么用lxml處理xml時(shí)的字符編碼問(wèn)題”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強。下面就讓小編來(lái)帶大家學(xué)習“怎么用lxml處理xml時(shí)的字符編碼問(wèn)題”吧!

為了簡(jiǎn)化問(wèn)題,就把xml的內容簡(jiǎn)化為如下的形式:

<?xml version="1.0" encoding="gbk"?><DOCUMENT><da><![CDATA[中文,就是任性]]></da></DOCUMENT>

它的encoding為gbk,其中的節點(diǎn)有一個(gè)為中文字符
使用lxml提取節點(diǎn)的值時(shí)出現了如下的異常

lxml.etree.XMLSyntaxError: Extra content at the end of the document

此時(shí)對應的Python腳本為:

tst = u'<?xml version="1.0" encoding="gbk"?><DOCUMENT><da><![CDATA[中文,就是任性]]></da></DOCUMENT>'
for event,element in etree.iterparse(BytesIO(tst.encode('utf-8'))):
    print("%s, %s" % (element.tag, element.text))

不過(guò)簡(jiǎn)化之前,報的是另外一個(gè)異常

lxml.etree.XMLSyntaxError: input conversion failed due to input error, bytes 0x8B 0x2C 0xE6 0x9D

不論異常是哪一個(gè),猜測還是和字符的編碼形式有關(guān)。
經(jīng)過(guò)各種嘗試無(wú)果,后來(lái)在stackoverflow上看到這篇文章,文中提到的問(wèn)題和xml中的encoding值有關(guān),嘗試了增加了一段代碼

tst = u'<?xml version="1.0" encoding="gbk"?><DOCUMENT><da><![CDATA[中文,就是任性]]></da></DOCUMENT>'
tst = tst.replace('encoding="gbk"', 'encoding="utf-8"')
for event,element in etree.iterparse(BytesIO(tst.encode('utf-8'))):
    print("%s, %s" % (element.tag, element.text))

增加了一個(gè)替換的語(yǔ)句,將之前的encoding="gbk"替換成encoding:"utf-8"
于是終于得到了結果:

da, 中文,就是任性
DOCUMENT, None

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

伊人久久大香线蕉无码| 免费国精产品一品二品| FREE性欧美HD另类精品| 狠狠色噜噜狠狠狠888米奇视频| 天天av天天av天天透| 久久久久久久女国产乱让韩|