Python 为什么在使用lxml编写XML文件后,属性值中的非ASCII字符会转义?

Python 为什么在使用lxml编写XML文件后,属性值中的非ASCII字符会转义?,python,xml,unicode,lxml,elementtree,Python,Xml,Unicode,Lxml,Elementtree,我正在尝试使用python和etree.xmlfile从lxml不断构建一个xml文件 我的输入是一个XML文件,其中属性值中有UMLAUT。我用lxml阅读了这篇文章,对属性的名称做了一些更改,然后将其写入一个新文件 这是我的代码,分解如下: with etree.xmlfile(path_to_new_file, encoding="utf8") as xf: with xf.element("

我正在尝试使用python和
etree.xmlfile
lxml
不断构建一个xml文件

我的输入是一个XML文件,其中属性值中有UMLAUT。我用
lxml
阅读了这篇文章,对属性的名称做了一些更改,然后将其写入一个新文件

这是我的代码,分解如下:

with etree.xmlfile(path_to_new_file, encoding="utf8") as xf:                                             
    with xf.element("corpus"):                                                                      
        for _, element in etree.iterparse(path_to_original_file, tag="comment"):                                               
            new_element = transform_element(element)                                                                                                   
            xf.write(new_element)
            del element
            del new_element
在原始文件中,我可能有如下元素:

一些带有类似于此的umlauts的文本

但经过处理后,新文件中的相同注释如下所示:

一些带有类似于此的umlauts的文本


您知道这可能是什么原因吗?

不必在XML属性值(或元素的文本节点子节点)中转义


可能是库的开发人员过于谨慎,调用了一个通用的转义字符串函数,可能是为了利用它对
的转义,您在哪里序列化新文档的后期修改?执行此操作时使用的设置至关重要。