使用 minidom(不止一个父元素)在 Python 中创建 XML 文件
Create XML file in Python using minidom (more than one parented element)
我目前正在尝试使用 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)
,因为您需要将创建的文本节点附加到之前创建的元素节点。
我目前正在尝试使用 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)
,因为您需要将创建的文本节点附加到之前创建的元素节点。