python - 如何在Python中漂亮地打印xml而不生成DOM树?

标签 python xml

对于非常大的 xml 数据来说,生成 DOM 树的成本太高。有没有一种方法可以在不生成的情况下完成打印?我正在使用 python-2.7。

最佳答案

无论使用哪种语言,在不生成树的情况下解析 XML 文档的方法是使用面向事件的解析器。使用这些类型的解析器,您可以向解析器提供一些事件处理程序,解析器将在处理的特定点调用这些事件处理程序:节点开始、节点结束、数据开始等。

因此,您可以使用这种解析器,并在每次有新节点时转到新行,并在进入节点时增加缩进,在退出节点时减少缩进。 由于这些解析器的工作方式,向前查看节点是否适合一行会很棘手,因此 pretty-print 可能不如使用树时那么漂亮(或者你可以,但它会变得复杂)。

在Python中,标准库附带了3个事件驱动的解析器(排名不分先后):

我建议你看看它们并尝试玩一下。

关于python - 如何在Python中漂亮地打印xml而不生成DOM树?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32623603/

相关文章:

android - 将 float 操作按钮集成到带有工具栏的线性布局中

处理 MySQL 连接的 Python 类不断抛出错误

python - matplotlib:以 None 作为值绘制 numpy 数组

android - 在 Vector Drawable 中翻转 Drawable 图像

java - 在 ApplicationContext 中找到 Bean,但在尝试 Autowiring 时找不到

xml - 用于更新 Sharepoint 列表的 SAS PROC SOAP

python - 嵌套 if 条件和中断

python - Django 表单在唯一字段上验证失败

python - 为什么我的 PyGame 应用程序根本不运行?

java - Google Maps API groundoverlay 在应用程序中不起作用