如何让ElementTree在属性值中输出制表符等作为数字实体?

时间:2013-08-20 12:46:05

标签: python elementtree

使用ElementTree生成XML文件时遇到问题。由于有关属性中空白区域的XML规则,在解析XML文件时,属性中的所有空格字符都将标准化为空格。但数字实体不会。因此,要在XML的内存中表示形式的属性值中包含选项卡\x09或例如\x0d\x0a,XML文件必须包含	或{{1}分别。

但是ElementTree只将
字符序列化为数字实体,但不是\x0a\x09 - 它们最终将作为XML文件中的实际制表符或cr字符,并且任何符合标准的XML处理器(包括ElementTree本身)将读回正常空格,因此往返是不可能的

有什么可以做的吗?除了不使用ElementTree写文件?

1 个答案:

答案 0 :(得分:0)

XML不支持大多数控制字符,甚至不支持实体。请参阅W3C Recommendation,然后查找Char制作。

您需要对信息进行编码。 Base64编码是最常见的。