关于python格式化(美化)XML的代码,网上大部分返回的都是ET NOTE的,而没有返回字符串(STRING)的,在某些场合用起来很不方便,干脆就自己写了一个。这代码是本人项目中的一小段,测试可用,如有问题请大家指出!!!
import xml.etree.ElementTree as ET
from xml.etree import ElementTree # 导入ElementTree模块
def view_xml_data(ls_path):
ls_result = GetXMLStr(ls_path)
root = ElementTree.fromstring(ls_result) # 导入字符串
return XML_Format(root, '\t', '\n')
def XML_Format(root_node, indent, newline, level = 0):
'''
20191005 JACK 编写美化XML树,并且返回字符串
:param root_node:XML树根节点
:param indent: Tab符
:param newline: 换行符
:param level: 层级
:return:字符串
'''
result_str = ''
if level == 0: #当为第一层时,输出根节点
result_str = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" + newline
result_str += '<' + root_node.tag + '>' + newline
result_str += XML_Format(root_node, indent, newline, level + 1)
result_str += indent * level + '</' + root_node.tag + '>' + newline
else:
for child in root_node:
# print(child.tag, child.text, level)
if child.text == None:
result_str += indent * level + '<' + child.tag + '>' + newline
result_str += XML_Format(child, indent, newline, level + 1)
result_str += indent * level + '</' + child.tag + '>' + newline
else:
result_str += indent * level + '<' + child.tag + '>' + child.text + '</' + child.tag + '>' + newline
return result_str
if __name__ == "__main__":
print(view_xml_data('c:\\1.xml'))
Python3 格式化XML到字符串方法
本文介绍了一段Python代码,用于将格式化的XML转换为字符串形式,适用于需要XML字符串的场景。该代码片段是作者项目的一部分,经过测试有效,欢迎提出改进意见。
1741

被折叠的 条评论
为什么被折叠?



