当前使用Python 2.4.3版本,无法升级。
我想要更改一个或多个标记中给定属性的值,并且也要更新文件中的XML注释。
我已经编写了一个Python脚本,它以XML文件作为参数,并针对每个指定的标记更改一个属性,如下所示:
def update(file, state):
global Etree
try:
from elementtree import ElementTree
print '*** using ElementTree'
except ImportError, e:
print '***'
print '*** Error: Must install either ElementTree or lxml.'
print '***'
raise ImportError, 'must install either ElementTree or lxml'
#end try
doc = Etree.parse(file)
root = doc.getroot()
for element in root.findall('.//StateManageable'):
element.attrib['initialState'] = state
#end for
doc.write(file)
#end def
这一切都很好,"initialState"属性已经更新,只是我的原始XML包含了很多XML注释,但它们已经消失了,这很糟糕。
怀疑parse只检索XML结构,但我认为XML注释是结构的一部分。我也意识到,我的原始文档的“可读性”格式已经消失了,但我已经意识到这是预期行为,需要使用xmllint --format
或XSL进行格式化。