Python 漂亮的 XML 打印机与 lxml

2023-12-06

使用“丑陋”的 XML 读取现有文件并进行一些修改后,漂亮的打印不起作用。我试过了etree.write(FILE_NAME, pretty_print=True).

我有以下 XML:

<testsuites tests="14" failures="0" disabled="0" errors="0" time="0.306" name="AllTests">
    <testsuite name="AIR" tests="14" failures="0" disabled="0" errors="0" time="0.306">
....

我这样使用它:

tree = etree.parse('original.xml')
root = tree.getroot()

...    
# modifications
...

with open(FILE_NAME, "w") as f:
    tree.write(f, pretty_print=True)

对我来说,这个问题直到我注意到这个小花絮才得到解决:

http://lxml.de/FAQ.html#why-doesn-t-the-pretty-print-option-reformat-my-xml-output

简洁版本:

使用以下命令读入文件:

>>> parser = etree.XMLParser(remove_blank_text=True)
>>> tree = etree.parse(filename, parser)

这将“重置”已经存在的缩进,允许输出正确生成它自己的缩进。然后像平常一样 Pretty_print :

>>> tree.write(<output_file_name>, pretty_print=True)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 漂亮的 XML 打印机与 lxml 的相关文章

随机推荐

  • 如何异步运行PHP代码

    如何异步运行 PHP 代码而无需等待 我有一个很长的运行 几乎无限 应该在服务器启动时运行 并且应该异步处理而无需等待 我猜可能的选择是 在网页中运行代码并保持打开状态以执行该任务 从某些命令行实用程序调用脚本 我不知道如何 该脚本将在后台
  • 在javascript中查找三次贝塞尔曲线的所有点[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我有一个带有 2 个控制点的三次贝塞尔曲线 起点和控制点是已知的 需要获取曲线的所有点 给定控制点 起点和终点 我想要实现的是 给定一个从1到曲线长
  • 自动授予 Azure Active Directory Web 应用程序权限

    我们公司正在开发一个基于Azure组件的系统和一个连接到Azure的客户端桌面应用程序 我们的安装代码通过 Azure API 和 Azure 部署自动化自动部署 Azure 组件 正在部署的这些组件之一是我们在 Azure Active
  • Twisted.Web 和 AJAX

    我在 Twisted Web 中实现了一个玩具 Web 服务 from twisted web import server resource http class RootResource resource Resource def ini
  • 从具有重复元素的数组中随机找到一个组合,并且其总和等于 n

    如何从一个随机数中找到一个组合array具有重复元素且其总和相等n Example array is 1 2 2 3 and n is 3 答案是1 2 1 2 3 If randomSubsetSum array n 是解 那么rando
  • PyQt5 找不到已安装的 Qt5 库

    On Ubuntu 16 0 4 我正在尝试跑步这个 PyQt5 脚本 我有分布式包Qt5 via apt and PyQt5 via pip3 已安装 Error sudo video qt py 回溯 最近一次调用最后一次 文件 vid
  • 从互联网访问本地主机[关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我需要在短时间内转发我的本地主机以进行测试 必须从公共互联网访问它 我怎样才能实现这个目标 有一些很好的免费服务可以让您做同样的事情 非常适合在开发 测试期间快速显示某些内容 htt
  • 使用Java进行RSA加密/解密

    我正在编写一个简单的程序 使用 Java 中的 RSA 算法进行加密 解密 我创建一个密码对象如下 Create a Cipher object Cipher rsaCipher Cipher getInstance RSA ECB NoP
  • JS:Promise 没有返回值

    我需要获取异步函数的值 我尝试使用 Promise 但这不起作用 const res new Promise function resolve reject gm readStream size bufferStream true func
  • 为什么 API 调用需要 80 毫秒的延迟才能到达控制器(在 Google App Engine 中)?

    对于到达控制器的每个 Api 调用 都需要 80 毫秒的延迟 我已经尝试了所有实例类 结果是相同的 我还没有找到任何解决方案 如图所示 RPC 调用在第 80 毫秒开始 剩余时间花在我的代码之外 嗯 可能有a lot为每个请求执行的 GAE
  • 位图大小超出特定活动的 VM 预算

    我有活动 A B 和 C 它们都设置了 ContentView 其中 XML 使用可绘制对象和背景 我将背景可绘制图像放在可绘制 nodpi 文件夹中 然而 每隔一段时间 我就会在活动 B 的崩溃报告中得到以下异常 java lang Ou
  • 使用 NumPy 步幅沿 2D 数组的最后一个轴滑动窗口以给出 3D 数组

    我正在尝试使用该功能as strided from numpy lib stride tricks从更大的二维数组中提取子系列 但我很难找到合适的东西来编写strides争论 假设我有一个矩阵m其中包含 5 个长度为 a 10 我想提取长度
  • Matlab中的样条插值以预测值

    我遇到的情况如下图所示 该图是两个向量的结果 fi 41 309180589278 41 8087915220215 42 8081880760916 43 8078181874395 44 8076823745539 45 8077808
  • ES6 承诺执行顺序

    我希望以下代码片段的输出是1 2 3 4 但是 实际的输出顺序是1 4 3 2 self promiseChain new Promise function resolve reject setTimeout resolve 4000 th
  • 如何迭代字典列表中的嵌套字典?

    对 Python 还很陌生 需要一些帮助 我找到了一些迭代字典列表的答案 但没有找到字典列表中嵌套字典的答案 这是字典列表中单个字典的粗略结构 a 1 b 2 c 3 d ab 12 cd 34 ef 56 e 4 f etc dict l
  • 如何仅通过给出元素的 id 来获取该元素的所有应用样式?

    我试图编写一个函数 它获取元素的 Id 并给出应用于该元素的所有样式属性 及其值 的列表 它应该考虑内联样式以及 css 文件中定义的样式 当我在参数中提供样式属性名称和元素的 id 时 我可以让该函数工作 但我只想传递元素的 id 并且应
  • 在Python中使用过滤器和生成器生成无限素数

    下面是我发现的一个 python 程序 它可以使用以下命令来查找素数 埃拉托斯特尼筛法 它使用过滤器和发生器 我无法理解 def odd iter n 1 while True n n 2 yield n def not divisible
  • 为什么这个使用lookbehinds的正则表达式在R中无效?

    我正在尝试在 R 中执行后向正则表达式来查找模式 我预计这会拉出 bob 中的 b 但我收到了一个错误 gt regexpr lt a b thingamabob Error in regexpr lt a b thingamabob in
  • 嵌入 Google 群组 - 未登录 Google 时不会显示任何内容

    我正在尝试使用为群组提供的嵌入代码将 Google 网上论坛论坛嵌入到页面中 当我登录 Google 时它工作正常 但如果我没有登录 嵌入代码 创建 iframe 会抛出以下错误 在 Chrome 中 拒绝显示文档 因为显示禁止 X 框架选
  • Python 漂亮的 XML 打印机与 lxml

    使用 丑陋 的 XML 读取现有文件并进行一些修改后 漂亮的打印不起作用 我试过了etree write FILE NAME pretty print True 我有以下 XML