2016-08-01 85 views
0

我目前正在尝试在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 

有什么办法可以使这项工作?提前致谢!

回答

0

代替例如nameContent.appendChild(nameElement)您需要例如nameElement.appendChild(nameContent),因为您需要将文本节点create添加到之前创建的元素节点。

相关问题