使用python创建一个简单的XML文件
如果我想在python中创建一个简单的XML文件,该怎么办?(明智的)
我想要的xml看起来像:
<root> <doc>
<field1 name="blah">some value1</field1>
<field2 name="asdfasd">some vlaue2</field2>
</doc>
</root>
回答:
如今,最流行(且非常简单)的选项是ElementTree API,该元素自Python 2.5起已包含在标准库中。
可用的选项有:
- ElementTree(ElementTree的基本,纯Python实现。自2.5以来是标准库的一部分)
- cElementTree(ElementTree的优化C实现。从2.5开始在标准库中提供)
- LXML(基于libxml2。提供ElementTree API的丰富超集以及XPath,CSS选择器等)
这是一个如何使用stdlib cElementTree生成示例文档的示例:
import xml.etree.cElementTree as ETroot = ET.Element("root")
doc = ET.SubElement(root, "doc")
ET.SubElement(doc, "field1", name="blah").text = "some value1"
ET.SubElement(doc, "field2", name="asdfasd").text = "some vlaue2"
tree = ET.ElementTree(root)
tree.write("filename.xml")
我已经对其进行了测试,并且可以正常工作,但是我假设空格并不重要。如果您需要“ prettyprint”缩进,请告诉我,我将查找如何做。(这可能是特定于LXML的选项。我很少使用stdlib实现)
为了进一步阅读,这里有一些有用的链接:
- 适用于Python标准库的API文档
- 入门教程(来自原始作者的网站)
- LXML etree教程。(带有示例代码,用于从所有主要ElementTree实现中加载最佳可用选项)
- 最后一点,cElementTree或LXML都应该足够快以满足您的所有需求(都是经过优化的C代码),但是在这种情况下,您需要充分利用性能的最后一点, LXML网站指示:
- LXML显然在序列化(生成)XML方面胜出
- 作为实现正确的父遍历的副作用,LXML的解析比cElementTree慢一些。
以上是 使用python创建一个简单的XML文件 的全部内容, 来源链接: utcz.com/qa/434266.html