在变量中以原样(保留缩进)读取XML文件(使用Python)
有没有办法把一个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)
这是对我有效的方法!