如何在python中创建xml文档
时间:2020-03-05 18:43:35 来源:igfitidea点击:
这是我的示例代码:
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属性,它没有给出编译器错误,但似乎不起作用...我该如何创建文本节点?
解决方案
回答
在对象上设置属性不会产生编译时或者运行时错误,如果该对象不访问它,它将没有任何用处(例如,"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)
回答
@丹尼尔
感谢答复,我还想出了如何使用最小方法(我不确定ElementTree与最小方法之间的区别)
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)
我发誓在发布问题之前尝试过此操作...
回答
我在minidom方法上找到了一个非常详细的教程
这是etree方法的教程。阅读起来要好得多,而且看起来很简单。它也遍历了xml的解析(简短地)