Python怎么生成带缩进的美观XML-XML/RSS教程

推荐使用 xml.etree.ElementTree(Python 3.9+ 直接调用 ET.indent(),旧版可手动实现轻量函数)或 lxml(支持 pretty_print=True),避免字符串拼接等易错方式。

用 Python 生成带缩进的美观 XML,核心是避免手动拼字符串,而应使用标准库中的 xml.etree.ElementTree(推荐)或第三方库如 lxml,配合格式化函数实现自动缩进。

用 ElementTree + 自定义 indent 函数(推荐,无需额外依赖)

Python 3.9+ 内置了 xml.etree.ElementTree.indent(),直接调用即可;旧版本需手动实现一个轻量 indent 函数:

  • 创建元素树后,调用 ET.indent(root, space=" ", level=0)(3.9+)
  • 3.8 及更早:可复制官方推荐的 indent 函数源码,几行就能搞定
  • 再用 ET.tostring(root, encoding="unicode", method="xml") 转为带缩进的字符串

用 lxml(功能更强,支持 pretty_print)

lxml 对 XML 处理更专业,生成美观 XML 更简单直接:

  • 安装:pip install lxml
  • 创建 etree.Element 后,用 etree.tostring(tree, pretty_print=True, encoding="unicode")
  • 自动处理换行、缩进、属性顺序,还支持 DTD、XSLT、XPath 等高级功能

避免踩坑:别用字符串拼接或 minidom

手写 XML 字符串易出错(如未转义 &、)、难维护;xml.dom.minidom 虽有 toprettyxml(),但会插入多余空行、不控制缩进宽度、对中文支持弱,已不推荐用于新项目。

立即学习“Python免费学习笔记(深入)”;

完整小例子(ElementTree + indent)

Python 3.9+ 示例:

import xml.etree.ElementTree as ET

root = ET.Element("root") child = ET.SubElement(root, "item", attrib={"id": "1"}) child.text = "Hello 世界"

ET.indent(root, space=" ") # 关键一步 xml_str = ET.tostring(root, encoding="unicode") print(xml_str)

输出即为缩进良好、可读性强的 XML。

夏夕资源网专注于CMS网站模板,主流语言整站网站源码下载,网站建设相关教程分享,好用的软件素材整合下载,提供一站式便捷自助服务。
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"zy.lucklyus.top",如遇到无法解压的请联系管理员!
夏夕资源网-网站模板_免费源码_资源素材 » Python怎么生成带缩进的美观XML-XML/RSS教程
在线时间:12:00 - 22:00
关注微信公众号:微信公众号
站长邮箱:[email protected]
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4018566+
  • 本周更新: 0+
  • 最后更新: 2026-03-16

本站指数

×
  • 运营天数: 1393+
  • 资源总数: 47989+
  • 用户总数: 1+
  • 今日更新: 0+
  • 访问次数: 4018566+
  • 本周更新: 0+
  • 最后更新: 2026-03-16