有没有办法将整个XML文件读入带变量和缩进的Python变量?
data = """<?xml version="1.0" encoding="UTF-8" ?>
<uimap>
<page name="login">
<uielement name="username">
<locator>//input[@type='text']</locator>
</uielement>
<uielement name="password">
<locator>//input[@type='password']</locator>
</uielement>
</page>
</uimap>
"""
这是一个简短的例子,所以我可以手动输入它,但如果我的XML文件真的很大,我怎么能把它们读成python变量?使用fopen不是一个选项,因为它正在读取所有字体大小和样式,这在我的情况下是多余的。
答案 0 :(得分:1)
import xml.dom.minidom
xmlObject = xml.dom.minidom.parse(xml_fname) # or xml.dom.minidom.parseString(xml_string)
pretty_xml_as_string = xmlObject.toprettyxml()
print(pretty_xml_as_string)
从这里回答:Pretty printing XML in Python
这会增加额外的换行符。如果您希望输出看起来与数据完全相同,可以尝试:
import xml.etree.ElementTree as ET
xmlObject = ET.parse(xml_fname) # or ET.fromstring(xml_string)
pretty_xml_as_string = ET.tostring(xmlObject).decode()
print(pretty_xml_as_string)
请注意,这适用于Python3。
[OP编辑:]这是适合我的那个
import lxml.etree as etree
x = etree.parse("filename")
print etree.tostring(x, pretty_print = True)