gpt4 book ai didi

Python Minidom 修改/追加内容文件

转载 作者:太空宇宙 更新时间:2023-11-04 03:48:43 26 4
gpt4 key购买 nike

8 小时以来,我现在尝试解析 XML 并将 5 行文本添加到 xml 中。我真的没有取得任何进展,writexml、toxml 和 saveXML 似乎都无法在 minidom 库中工作

我们要解析 xml 并在结束标记之前添加一些行。听起来很简单?

所以我的情况是:一个名为 updates.xml 的文件

<UpdateSite>
<SomeTags></SomeTags>
<SomeTags2></SomeTags2>
<SomeTags3></SomeTags3>

<SomeTags></SomeTags>
<SomeTags2></SomeTags2>
<SomeTags3></SomeTags3>

<SomeTags></SomeTags>
<SomeTags2></SomeTags2>
<SomeTags3></SomeTags3>
</UpdateSite>

我们在做什么:

dom = xml.dom.minidom.parse("updates.xml")
updateSite=dom.getElementsByTagName('UpdateSite')
updateSite.append('<SomeTags>')
updateSite.append("<product>xx.xxxxxx.xxx</product>")
updateSite.append("<version style=\\"eclipse\\">"+$cleanVersion+"</version>")
updateSite.append("<resource style=\\"executable\\">SomeURL</resource>)
updateSite.append("</update>")
dom.saveXML(self, updateSite)
dom.writeXML(self, file_handle)
dom.toxml(self)

updateSite 包含正确的新行,但文件并未更新。谁能解释一下?

最佳答案

解析文档,获取UpdateSite 节点,向其附加一个Text 节点。然后将打开的文件传递给 dom.writexml():

from xml.dom.minidom import parse, Text

dom = parse("updates.xml")

updateSite = dom.getElementsByTagName('UpdateSite')[0]
text = Text()
text.data = 'test'
updateSite.appendChild(text)

with open("new_updates.xml", "wb") as f:
dom.writexml(f)

生成以下 xml:

<?xml version="1.0" ?><UpdateSite>
<SomeTags/>
<SomeTags2/>
<SomeTags3/>

<SomeTags/>
<SomeTags2/>
<SomeTags3/>

<SomeTags/>
<SomeTags2/>
<SomeTags3/>
test</UpdateSite>

希望对您有所帮助。

关于Python Minidom 修改/追加内容文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22386274/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com