如何阻止 Python 的 ElementTree XML 解析器替换 html 实体,如 `&#x0A`?

How to stop Python's ElementTree XML parser from replacing html entities like `&#x0A`?

在我的 xml 数据中有 html 个十六进制实体,例如 
。在这种情况下,ElementTree xml 解析器会将它们转换为 
。 它在某种程度上对我来说看起来像是一个错误,或者它是一个功能? 有没有办法阻止解析器这样做?

example.py

import xml.etree.ElementTree as ET

xml_RFtree = ET.parse("input.xml")
xml_RFtree.write("output.xml")

input.xml

<?xml version='1.0' encoding='UTF-8'?>
<Parameter Type="&#x0A;" />

output.xml

<?xml version='1.0' encoding='UTF-8'?>
<Parameter Type="&#10;" />

构造是 100% 等价的,解析器不会在您的输入中保留无意义的区别。如果你在等号周围有空格,它也不会保留那些:区别是可以忽略的,所以解析器的工作就是摆脱它们。

顺便说一句,解析器正在将 &xa; 转换为换行符,序列化程序正在将换行符转换为 &#10;。假设您的应用程序希望在元素树中看到的属性值是换行符。