从8个小时开始,我现在正在尝试解析XML并在xml中添加5行文本。我没有取得任何进展,writexml,toxml和saveXML似乎都不适用于minidom lib
我们要解析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包含正确的新行,但文件不会更新。谁能解释一下呢?
答案 0 :(得分:2)
解析文档,获取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>
希望有所帮助。