如何在Python中创建XML文档

20 投票
2 回答
27897 浏览
提问于 2025-04-11 00:19

这是我的示例代码:

from xml.dom.minidom import *
def make_xml():
    doc = Document()
    node = doc.createElement('foo')
    node.innerText = 'bar'
    doc.appendChild(node)
    return doc
if __name__ == '__main__':
    make_xml().writexml(sys.stdout)

当我运行上面的代码时,我得到了这个:

<?xml version="1.0" ?>
<foo/>

我想得到的是:

<?xml version="1.0" ?>
<foo>bar</foo>

我只是猜测有一个叫innerText的属性,它没有报编译错误,但似乎不起作用……我该如何创建一个文本节点呢?

2 个回答

9

给一个对象设置一个属性并不会导致编译错误或运行错误,如果这个对象没有使用到这个属性,它就不会发挥任何作用(比如说,"node.noSuchAttr = 'bar'" 也不会报错)。

如果你不需要 minidom 的某个特定功能,我建议你看看 ElementTree

import sys
from xml.etree.cElementTree import Element, ElementTree

def make_xml():
    node = Element('foo')
    node.text = 'bar'
    doc = ElementTree(node)
    return doc

if __name__ == '__main__':
    make_xml().write(sys.stdout)

撰写回答