当我已经存在一个 xml 文件,使用这个包去添加新节点后,需要再添加一句这个才能使文件真正修改
with open('myxml.xml', 'w') as f:
dom.writexml(f, addindent=' ')
问题就出在这里,函数writexml
中addindent
参数表示每个子结点的缩近字符,我想让它缩进两个空格。但当这么设置后,原文件本来旧的子节点会在缩进两个空格的基础上再缩进两个空格,而新节点只缩进两个空格。其他参数同理。。。
除了这个,还有一些节点也会发生奇怪的变动。
[原文件]
<?xml version="1.0" encoding="utf-8" ?>
<root node>
<old>
<old>text</old>
</old>
</root node>
[添加一个 new 节点后]
<?xml version="1.0" encoding="utf-8" ?><root node>
<old>
<old>text</old>
<new>text</new></old>
</root node>
大概就是这样,好苦恼啊。各位之前有碰到过这类问题吗求助求助
1
ysc3839 2021-01-14 15:17:53 +08:00 1
大概是因为原来的空格会解析成 text node,可以写个脚本 strip 一下。
参考这一段 https://github.com/ysc3839/AudioPlaybackConnector/blob/da39a942f38accae891df930a7b0a4074cdeb7d4/translate/xamlmin.py#L4-L9 |