Python 在外部函数中使用minidom appendChild()创建XML文件
为了使用Python创建XML文件,我在WriteXMLClass类中使用minidom。minidom中的函数Python 在外部函数中使用minidom appendChild()创建XML文件,python,xml,minidom,Python,Xml,Minidom,为了使用Python创建XML文件,我在WriteXMLClass类中使用minidom。minidom中的函数appendChild()通常会显得很安静,因此我想将其存储在外部函数中。但是,对self.base的引用丢失了,我没有得到任何输出 这应该是结果XML文件: <ROOT> <CHILD1> </CHILD1> <CHILD2> </CHILD2> </ROOT
appendChild()
通常会显得很安静,因此我想将其存储在外部函数中。但是,对self.base
的引用丢失了,我没有得到任何输出
这应该是结果XML文件:
<ROOT>
<CHILD1>
</CHILD1>
<CHILD2>
</CHILD2>
</ROOT>
如何在AddEmptyTag()
中像这样使用appendChild()
import xml.dom.minidom as dom
class WriteXMLClass(object):
def __init__(self):
self.base = dom.Document()
def AddEmptyTag(self, tagname, PARENTNODE): #NEW
tag = self.base.createElement(tagname)
PARENTNODE.appendChild(tag) #NEW
return tag
def CreateXML(self, Objects):
self.base = dom.Document()
tagdict = self.base.createElement('ROOT')
self.base.appendChild(tagdict)
tagCHILD = self.AddEmptyTag('CHILD1', tagdict) #NEW
tagCHILD2 = self.AddEmptyTag('CHILD2', tagdict) #NEW
self.base.writexml(PATH, "", "\t", "\r\n", "utf-8")
tagdict
应该是什么?您是否应该使用self.tagdict
?它只是根标记的一个引用。但是您试图在AddEmptyTag
中引用它,其中没有定义它。是否可以通过引用AddEmptyTag
来传递tagdict
?您可以将它作为参数传递,但目前还没有这样做。在Python中只能通过赋值传递。
import xml.dom.minidom as dom
class WriteXMLClass(object):
def __init__(self):
self.base = dom.Document()
def AddEmptyTag(self, tagname, PARENTNODE): #NEW
tag = self.base.createElement(tagname)
PARENTNODE.appendChild(tag) #NEW
return tag
def CreateXML(self, Objects):
self.base = dom.Document()
tagdict = self.base.createElement('ROOT')
self.base.appendChild(tagdict)
tagCHILD = self.AddEmptyTag('CHILD1', tagdict) #NEW
tagCHILD2 = self.AddEmptyTag('CHILD2', tagdict) #NEW
self.base.writexml(PATH, "", "\t", "\r\n", "utf-8")