Python Minidom修改/附加内容文件

2024-09-30 06:15:59 发布

您现在位置:Python中文网/ 问答频道 /正文

从8个小时以来,我一直在尝试解析一个XML并在XML中添加5行文本。我没有取得任何进展,writexml、toxml和saveXML似乎都不能从minidom库中工作

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

所以我的情况是: 一个名为更新.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包含正确的新行,但是文件没有更新。有人能解释一下吗?在


Tags: selfversionxmlproductdomappendminidomtoxml
1条回答
网友
1楼 · 发布于 2024-09-30 06:15:59

解析文档,获取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:

^{pr2}$

希望有帮助。在

相关问题 更多 >

    热门问题