我正在尝试使用 python 和lxml
中的etree.xmlfile
不断构建一个 xml 文件。
我的输入是一个 XML 文件,其中属性值中有变音符号。我用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
在原始文件中,我可能有这样的元素:
<comment title="Kübel">Some text with umlauts like this üä</comment>
但是经过处理,新文件中的相同注释如下所示:
<comment title="Kübel">Some text with umlauts like this üä</comment>
你知道是什么原因造成的吗?
不必在 XML 属性值(或元素的文本节点子级(中转义ü
。
可能库的开发人员过于谨慎并调用了通用转义字符串函数,可能是为了利用其转义<
,始终必须转义,以及匹配属性值的分隔引号时必须转义的'
或"
。
有关简明扼要地提出的精确转义要求,请参见简化的 XML 转义。