【问题标题】:XML Prettifying from file in Python从 Python 中的文件进行 XML 美化
【发布时间】:2015-04-20 21:29:38
【问题描述】:

我有一个 xml 文件,如下例所示。

许多文本包含空格作为起始字符,或以\n(换行符)开头,或其他疯狂的东西。我正在使用xml.etree.ElementTree,从这个文件中解析很好。

但我想要更多! :) 我试图美化这个烂摊子,但没有成功。尝试了许多教程,但总是没有漂亮的 XML 结束。

<?xml version="1.0"?>
<import>
<article>
<name> Name with space
</name>
<source> Daily Telegraph
</source>
<number>72/2015
</number>
<page>10
</page>
<date>2015-03-26
</date>
<author> Tomas First
</author>
<description>Economy
</description>
<attachment>
</attachment>
<region>
</region>
<text>
 My text is here
</text>
</article>
<article>
<name> How to parse
</name>
<source> Internet article
</source>
<number>72/2015
</number>
<page>1
</page>
<date>2015-03-26
</date>
<author>Some author
</author>
<description> description
</description>
<attachment>
</attachment>
<region>
</region>
<text>
 My text here
</text>
</article>
</import>

当我尝试来自 SO 的另一个答案时,它会生成相同的文件或更混乱的 XML

【问题讨论】:

  • 顺便说一句,换行符是导致您的答案生成混乱 XML 的主要因素。如果您的数据中不需要换行符,您可以使用tr -d 之类的内容将它们全部删除(尽管跳过第一行——这很容易完成),然后几乎任何 XML 处理器都会在被告知时做正确的事情漂亮的印刷品。
  • @LukasGraf 如果您查看可能的重复项,它们会解决不同的问题。我的意思是这不是重复的。

标签: python xml prettify


【解决方案1】:

bs4可以做到

from bs4 import BeautifulSoup

doc = BeautifulSoup(xmlstring, 'xml')

print doc.prettify()

【讨论】:

  • 谢谢。这对我有帮助。我将重写我的代码以反映新的漂亮 XML :)
  • 这是我写的python脚本。可能对某人有用。它解析斯洛伐克语术语。非常感谢。 pastebin.com/wj7TnN2f
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多