如何用python创建xml文档

2024-06-06 13:24:01 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的示例代码:

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属性,它没有给出编译器错误,但似乎不起作用。。。如何创建文本节点?


Tags: 代码fromimportnode示例makedocfoo
3条回答

在对象上设置属性不会给出编译时或运行时错误,如果对象不访问它,它将不会有任何用处(即“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)

@丹尼尔

感谢您的回复,我还知道了如何使用minidom(我不确定ElementTree和minidom之间的区别)


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

我发誓我在发帖之前试过这个。。。

我找到一个pretty verbose tutorial on the minidom method

这是一张tutorial for the etree method。读起来好多了,而且看起来很简单。它还讨论了xml的解析(简单地说)

相关问题 更多 >