当前位置: 首页 > 面试题库 >

具有lxml的Python漂亮XML打印机

权浩邈
2023-03-14
问题内容

在使用“难看的” 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)


 类似资料:
  • 问题内容: 如果有人对JSON的打印非常了解,那么我将不胜感激! 我正在使用以下功能将JSON字符串移动到文件中,以将复杂的python字符串转换为JSON格式: 问题是我遇到了方括号的语法错误,因为这对我来说是个新话题,我不知道该如何解决。我需要的JSON格式如下: 我正在使用Google Visualization API,您可能对此比较熟悉,但是我需要动态图。上面的代码是API创建图形所需的

  • 我有以下代码使用python与lxml漂亮打印文件example.xml: 我之所以使用lxml,是因为我必须保持原始文件的保真度,包括保持CDATA习惯用法。下面是文件示例。我正在使用它的xml: 它生成以下输出: 这几乎就是我想要的,只是我想得到一个子树。我希望能够只获取子树

  • 问题内容: 我有一个字符串,它表示要打印的非缩进XML。例如: 应该变成: 语法高亮不是必需的。为了解决该问题,我首先将XML转换为添加回车符和空格,然后使用pre标记输出XML。为了添加新行和空白,我编写了以下函数: 然后,我像这样调用该函数: 这对我来说很好用,但是当我编写上一个函数时,我认为必须有更好的方法。所以我的问题是,给定XML字符串以将其漂亮地打印在html页面中,您是否知道更好的方

  • 问题内容: 我有一个存储为DOM文档的XML文件,我想将其漂亮地打印到控制台,最好不使用外部库。 我知道这个问题已经在这个网站上问了很多遍,但是以前的答案都没有对我有用。 我正在使用Java 8,所以也许这是我的代码与以前的问题有所不同的地方?我也尝试过使用从Web上找到的代码手动设置变压器,但是这只是引起了错误。 这是我的代码,当前仅在控制台左侧的新行上输出每个xml元素。 问题答案: 我想这个

  • 问题内容: 是否有一种简单的内置方法将2D Python列表打印为2D矩阵? 所以这: 会变成像 我找到了pprint模块,但是它似乎并没有实现我想要的功能。 问题答案: 为了使事情变得有趣,让我们尝试使用更大的矩阵: 输出: UPD:对于多行单元格,应如下所示: 然后应用上面的代码。 另请参见http://pypi.python.org/pypi/texttable

  • 这是如何从命令行漂亮地打印XML?的后续问题。 libxml2中是否有任何工具允许我对齐每个节点的属性?我有一个大的XML文档,它的逻辑结构我不能改变,但是我想打开它 成