使用minidom(多个父元素)在Python中创建XML文件
问题描述:
我目前正在尝试在Python中使用minidom创建一个双父元XML文件,但是我努力让它工作(并且挣扎着我意味着它不是)使用minidom(多个父元素)在Python中创建XML文件
我试图创造一些这样的:
<?xml version="1.0"?>
<twitter>
<account>
<name>Triple J</name>
<handle>triplejplays</handle>
<format>.{artist} - {title} [{time}]</format>
</account>
<account>
<name>BBC Radio 1</name>
<handle>BBCR1MusicBot</handle>
<format>Now Playing {artist} - {title}</format>
</account>
</twitter>
使用此代码:
def createXML():
#Define document
xmlFile = Document()
#Create base element
baseElement = xmlFile.createElement("twitter")
#Create account element
accountElement = xmlFile.createElement("account")
#Append account element to base element
baseElement.appendChild(accountElement)
#Create elements and content under account
nameElement = xmlFile.createElement("name")
nameContent = xmlFile.createTextNode("Triple J")
nameContent.appendChild(nameElement)
nameElement.appendChild(accountElement)
handleElement = xmlFile.createElement("handle")
handleContent = xmlFile.createTextNode("triplejplays")
handleContent.appendChild(handleElement)
handleElement.appendChild(accountElement)
formatElement = xmlFile.createElement("format")
formatContent = xmlFile.createTextNode(".{artist} - {title} [{time}]")
formatContent.appendChild(formatElement)
formatElement.appendChild(formatElement)
print(doc.toxml(encoding='utf-8'))
createXML()
但我得到这个错误:
Text nodes cannot have children
有什么办法可以使这项工作?提前致谢!
答
代替例如nameContent.appendChild(nameElement)
您需要例如nameElement.appendChild(nameContent)
,因为您需要将文本节点create添加到之前创建的元素节点。