如何通过python循环修改xml文件中的单个属性而不覆盖整个文件?

问题描述

我有一个 xml 文件,它看起来像这里的那个 download xml file from here。它相当大,所以我在这里上传了它。如果搜索关键字“WMSServer”,它在这文件中有一个属性定义,在这属性中它们是一个名为“Enabled”的属性,我希望将其设置为 True,因为当前它设置为 False。如何在不覆盖文件的情况下访问该属性属性并更改其布尔值。我尝试使用此代码执行此操作,但它会覆盖当前文件,因此我丢失了我不想要的所有以前的信息。

覆盖前的原始XML文件在这里original xml file

更改的 xml 文件在这里updated xml file

Python 代码

output_draft=r"C:\Users\c\arcgis\image.xml"
doc = DOM.parse(output_draft)
typeNames = doc.getElementsByTagName('TypeName')
for typeName in typeNames:
    # Get the TypeName whose properties we want to modify.
    if typeName.firstChild.data == soe:
        extension = typeName.parentNode
        for extElement in extension.childNodes:
            # Enabled SOE.
            if extElement.tagName == 'Enabled':
                extElement.firstChild.data = 'true'
                print(extElement.firstChild.data,extElement)
                break
new_draft=output_draft
f = open(new_draft,'w')     
doc.writexml( f )     
f.close()
del f,doc

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)