微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何通过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 举报,一经查实,本站将立刻删除。