pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

如何使用 ElementTree 正確解析 utf-8 xml?

How to correctly parse utf-8 xml with ElementTree?(如何使用 ElementTree 正確解析 utf-8 xml?)
本文介紹了如何使用 ElementTree 正確解析 utf-8 xml?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我需要幫助來了解為什么使用 xml.etree.ElementTree 解析我的 xml 文件* 會產(chǎn)生以下錯誤.

I need help to understand why parsing my xml file* with xml.etree.ElementTree produces the following errors.

*我的測試 xml 文件包含阿拉伯字符.

任務(wù):打開并解析 utf8_file.xml 文件.

我的第一次嘗試:

import xml.etree.ElementTree as etree
with codecs.open('utf8_file.xml', 'r', encoding='utf-8') as utf8_file:
    xml_tree = etree.parse(utf8_file)

結(jié)果 1:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 236-238: ordinal not in range(128)

我的第二次嘗試:

import xml.etree.ElementTree as etree
with codecs.open('utf8_file.xml', 'r', encoding='utf-8') as utf8_file:
    xml_string = etree.tostring(utf8_file, encoding='utf-8', method='xml')
    xml_tree  = etree.fromstring(xml_string)

結(jié)果 2:

AttributeError: 'file' object has no attribute 'getiterator'

請解釋上述錯誤并評論可能的解決方案.

Please explain the errors above and comment on the possible solution.

推薦答案

將字節(jié)解碼留給解析器;先解碼:

Leave decoding the bytes to the parser; do not decode first:

import xml.etree.ElementTree as etree
with open('utf8_file.xml', 'r') as xml_file:
    xml_tree = etree.parse(xml_file)

一個 XML 文件必須在第一行包含足夠的信息來處理解析器的解碼.如果缺少標頭,解析器必須假定使用 UTF-8.

An XML file must contain enough information in the first line to handle decoding by the parser. If the header is missing, the parser must assume UTF-8 is used.

因為保存這些信息的是 XML 標頭,所以解析器負責(zé)進行所有解碼.

Because it is the XML header that holds this information, it is the responsibility of the parser to do all decoding.

您的第一次嘗試失敗了,因為 Python 試圖再次編碼 Unicode 值,以便解析器可以按預(yù)期處理字節(jié)字符串.第二次嘗試失敗,因為 etree.tostring() 期望解析樹作為第一個參數(shù),而不是 unicode 字符串.

Your first attempt failed because Python was trying to encode the Unicode values again so that the parser could handle byte strings as it expected. The second attempt failed because etree.tostring() expects a parsed tree as first argument, not a unicode string.

這篇關(guān)于如何使用 ElementTree 正確解析 utf-8 xml?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Troubles while parsing with python very large xml file(使用 python 解析非常大的 xml 文件時出現(xiàn)問題)
Find all nodes by attribute in XML using Python 2(使用 Python 2 在 XML 中按屬性查找所有節(jié)點)
Python - How to parse xml response and store a elements value in a variable?(Python - 如何解析 xml 響應(yīng)并將元素值存儲在變量中?)
How to get XML tag value in Python(如何在 Python 中獲取 XML 標記值)
Parse XML from URL into python object(將 XML 從 URL 解析為 python 對象)
Large XML File Parsing in Python(Python 中的大型 XML 文件解析)
主站蜘蛛池模板: 浙江筋膜枪-按摩仪厂家-制造商-肩颈按摩仪哪家好-温州市合喜电子科技有限公司 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢 | 济南律师,济南法律咨询,山东法律顾问-山东沃德律师事务所 | 葡萄酒灌装机-食用油灌装机-液体肥灌装设备厂家_青州惠联灌装机械 | 熔体泵|换网器|熔体齿轮泵|熔体计量泵厂家-郑州巴特熔体泵有限公司 | 浙江寺庙设计-杭州寺院设计-宁波寺庙规划_汉匠 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 玄米影院| 南昌旅行社_南昌国际旅行社_南昌国旅在线 | POS机办理_个人pos机免费领取-银联pos机申请首页 | 大白菜官网,大白菜winpe,大白菜U盘装系统, u盘启动盘制作工具 | 网站制作优化_网站SEO推广解决方案-无锡首宸信息科技公司 | 棕刚玉_白刚玉_铝酸钙-锐石新材料 | 气象监测系统_气象传感器_微型气象仪_气象环境监测仪-山东风途物联网 | 知名电动蝶阀,电动球阀,气动蝶阀,气动球阀生产厂家|价格透明-【固菲阀门官网】 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 事迹材料_个人事迹名人励志故事 学生作文网_中小学生作文大全与写作指导 | 蜜蜂职场文库_职场求职面试实用的范文资料大全 | 瓶盖扭矩仪(扭力值检测)-百科| 户外健身路径_小区健身器材_室外健身器材厂家_价格-浩然体育 | 济南ISO9000认证咨询代理公司,ISO9001认证,CMA实验室认证,ISO/TS16949认证,服务体系认证,资产管理体系认证,SC食品生产许可证- 济南创远企业管理咨询有限公司 郑州电线电缆厂家-防火|低压|低烟无卤电缆-河南明星电缆 | 氧化铁红厂家-淄博宗昂化工 | 圆周直径尺-小孔内视镜-纤维研磨刷-东莞市高腾达精密工具 | 淘趣英语网 - 在线英语学习,零基础英语学习网站 | 硬齿面减速机[型号全],ZQ减速机-淄博久增机械 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 上海乾拓贸易有限公司-日本SMC电磁阀_德国FESTO电磁阀_德国FESTO气缸 | 沈阳液压泵_沈阳液压阀_沈阳液压站-沈阳海德太科液压设备有限公司 | QQ房产导航-免费收录优秀房地产网站_房地产信息网 | 广东燎了网络科技有限公司官网-网站建设-珠海网络推广-高端营销型外贸网站建设-珠海专业h5建站公司「了了网」 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 工业用品一站式采购平台|南创工品汇-官网|广州南创 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 房车价格_依维柯/大通/东风御风/福特全顺/江铃图片_云梯搬家车厂家-程力专用汽车股份有限公司 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 布袋除尘器-单机除尘器-脉冲除尘器-泊头市兴天环保设备有限公司 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 上海宿田自动化设备有限公司-双面/平面/单面贴标机 | 锡膏喷印机-全自动涂覆机厂家-全自动点胶机-视觉点胶机-深圳市博明智控科技有限公司 | 模切之家-专注服务模切行业的B2B平台! | 杭州中策电线|中策电缆|中策电线|杭州中策电缆|杭州中策电缆永通集团有限公司 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 |