在变量中以原样(保留缩进)读取XML文件(使用Python)

-1 投票
1 回答
523 浏览
提问于 2025-04-18 17:13

有没有办法把一个XML文件逐行读取,并保持原来的缩进,放到一个Python变量里呢?

我试过以下方法:

from lxml import etree as ET
tree = ET.parse("f1.xml")

还有这个:

from lxml import etree as ET
tree = ET.parse("f1.xml")
t1 = ET.fromstring(tree)

在尝试第二种方法时,我遇到了以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "lxml.etree.pyx", line 3032, in lxml.etree.fromstring (src/lxml/lxml.etree.c:68121)
  File "parser.pxi", line 1785, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:102459)
ValueError: can only parse strings"

如果我用fopen函数来读取XML文件,里面会加很多多余的内容——因为它似乎是用Microsoft Word或者Open Office来读取这个文件的。

1 个回答

-1
import lxml.etree as etree 
x = etree.parse("filename") 
print etree.tostring(x, pretty_print = True)

这是对我有效的方法!

撰写回答