如今,最流行(且非常简单)的选项是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")
我已经对其进行了测试,并且可以正常工作,但是我假设空格并不重要。如果您需要“ brush:php;toolbar:false”缩进,请告诉我,我将查找如何做。(这可能是特定于LXML的选项。我很少使用stdlib实现)
为了进一步阅读,这里有一些有用的链接:
- 适用于Python标准库的API文档
- 入门教程(来自原始作者的网站)
- LXML etree教程。(带有示例代码,用于从所有主要ElementTree实现中加载最佳可用选项)
- 最后一点,cElementTree或LXML都应该足够快以满足您的所有需求(都是经过优化的C代码),但是在这种情况下,您需要充分利用性能的最后一点, LXML网站指示:
- LXML显然在序列化(生成)XML方面胜出
- 作为实现正确的父遍历的副作用,LXML的解析比cElementTree慢一些。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)