我将要构建一个项目,该项目需要构造XML文档并将其发布到Web服务,并且我想用Python来完成它,以此来扩展我在其中的技能。不幸的是,尽管我对.NET相当了解XML模型,但是我不确定Python中XML模型的优缺点。任何人都有使用Python处理XML的经验吗?你会建议我从哪里开始?我将要构建的XML文件将非常简单。
3 回答

弑天下
TA贡献1818条经验 获得超8个赞
我已经将ElementTree用于多个项目并推荐它。
它是pythonic,随Python 2.5一起提供,包括c版本cElementTree(xml.etree.cElementTree),它比纯Python版本快20倍,并且非常易于使用。
lxml具有一些性能优势,但是它们并不平衡,因此您应该首先检查一下用例的基准测试。
据我了解,ElementTree代码可以轻松移植到lxml。

牛魔王的故事
TA贡献1830条经验 获得超3个赞
这取决于文件的复杂程度。
我在编写XML时经常使用minidom,但是通常只是读取文档,进行一些简单的转换,然后再写回。在我需要排序元素属性的能力之前,这已经足够好了(以满足无法正确解析XML的古老应用程序)。那时我放弃了,自己写了XML。
如果您只处理简单的文档,那么比学习框架更快,更简单。如果可以想象手动编写XML,那么也可以手动编写XML(只是要记住正确地转义特殊字符并使用str.encode(codec, errors="xmlcharrefreplace")
)。除了这些麻烦之外,XML非常普通,因此您不需要特殊的库来编写它。如果文档太复杂而无法手工编写,那么您可能应该研究一下已经提到的框架之一。您根本不需要编写通用的XML编写器。
添加回答
举报
0/150
提交
取消