python 对xml的修改使得空标签格式出错

iFe-Ather 发布于 2016/10/19 14:47
阅读 598
收藏 0

程序目的是修改xml文件中标签的值并保存为正确xml格式

使用的是Python 对xml的操作模块xml.etree.ElementTree

在使用write()写入xml时,如果xml某个标签为空,写入之后xml文件会出错

下面为Python代码

from xml.etree import ElementTree
import sys 

xml = 'scon.xml'

xmldoc = ElementTree.parse(xml)

e  = xmldoc.find('BreakPoint')

e.text = '1'

xmldoc.write(xml)

当xml标签内容不为空时,运行正常

下面是n1.xml:

<config>
	<RefreshTime>0</RefreshTime>
	<WaitTime>0</WaitTime>
	<BreakPoint>0</BreakPoint>
	<FileName>0</FileName>
	<Line>0</Line>
</config>
运行代码之后,显示正常:
<config>
	<RefreshTime>0</RefreshTime>
	<WaitTime>0</WaitTime>
	<BreakPoint>1</BreakPoint>
	<FileName>0</FileName>
	<Line>0</Line>
</config>
当其它标签内容为空时,写入的xml就会出错

下面是n2.xml:

<config>
	<RefreshTime></RefreshTime>
	<WaitTime></WaitTime>
	<BreakPoint>1</BreakPoint>
	<FileName></FileName>
	<Line>0</Line>
</config>

运行程序之后,除了BreakPoint值正确修改之外,其它标签全部出错:

<config>
	<RefreshTime />
	<WaitTime />
	<BreakPoint>1</BreakPoint>
	<FileName />
	<Line />
</config>

但是使用xml验证器验证这个xml显示没有错误,这是什么情况

请问我的程序是在哪里出了问题?还是它这个模块本身有问题?

我想使用n2.xml运行程序并使其输出n1同样的结果,我改怎么做?

加载中
0
Fly_f
Fly_f

这个没有问题。只是简写了。

这个库 写出去的时候没有值 会直接写 成 <xxxxx />

返回顶部
顶部