xml.etree.ElementTree修改xml遇到空节点

liaoyi5189 2016-06-12 07:12:07
我想把如下的xml中的Height值改为1,
<Student >
<Id>1</Id>
<Age></Age>
<Height>0</Height>
<URI></URI>
</Student >

python代码如下:

##########################################################
import os
import xml.etree.ElementTree as ET

tree = ET.parse('config.xml')
root = tree.getroot()
tag = root.tag
for Height in root.iter('Height'):
new_Height = 1
Height.text = str(new_Height )
tree.write('config.xml')
结果Height的值是修改好了,
但是发现节点为空的地方被强制删掉了一些东西:
<Age></Age>变成了<Age/>
<URI></URI>变成了<URI />
这个该怎么办呢?
...全文
265 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ForestDB 2016-06-14
  • 打赏
  • 举报
回复
<Age></Age>和<Age/>是等价的,都是合法的xml tag。
liaoyi5189 2016-06-13
  • 打赏
  • 举报
回复
它是在 tree.write('config.xml')过程中被强制修改的,即使我中途替换回来,但是最终还是要调用write()函数的
屎克螂 2016-06-13
  • 打赏
  • 举报
回复
你可以用替换或者正则把它换掉

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧