首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阻止xml.etree将特殊字符编写为HTML代码

阻止xml.etree将特殊字符编写为HTML代码
EN

Stack Overflow用户
提问于 2020-07-14 09:28:08
回答 1查看 621关注 0票数 0

在我的代码中,我修改了一些XML并将这些XML写入输出文件。但不幸的是,xml.etree将一些特殊字符转换为HTML字符,如下所示。有什么办法可以避免这种情况吗?如果无法使用xml.etree,我将向其他Python库开放。

代码语言:javascript
复制
import xml.etree.ElementTree as ET

xml = ET.fromstring("<Item a='ë'/>")

print(ET.tostring(xml))
# b'<Item a="&#235;" />'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-14 09:42:52

ElementTree默认为US编码.在US中没有表示ë的方法,因此它返回到将字符表示为一个实体&#235;

解决办法很简单:

代码语言:javascript
复制
print(ET.tostring(xml, encoding='unicode'))
# => '<Item a="ë" />'

Note --这将给您一个str,而不是bytes,但是省略encoding参数会给您带来字节,就像您在自己的示例中看到的那样。

要将XML写入文件或通过网络发送,您需要将其转换为字节。使用Unicode编码,如UTF-8:

代码语言:javascript
复制
print(ET.tostring(xml, encoding='utf-8'))
# => b'<Item a="\xc3\xab" />'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62892027

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档