minidom的toprettyxml()默认保留并美化原始空白节点,导致多余空行;应先调用再清理空白行,或改用ElementTree结合minidom处理。
用 minidom 的 toprettyxml() 方法确实能格式化 XML,但默认会多出空行、缩进不一致,甚至在某些版本里还会插入多余的换行——这不是 bug,是设计行为。关键是要理解它怎么工作,再针对性处理。
因为 toprettyxml() 会把文本节点(比如换行符、空格)也当成独立节点来缩进,而原始 DOM 中的换行和空白会被保留并美化,结果就是标签之间冒出大量空行。
最稳妥的做法是:先调用 toprettyxml(),再用正则或字符串处理把连续的换行压缩掉:
import xml.dom.minidom假设 doc 是你的 Document 对象
rough_string = doc.toprettyxml(indent=" ", encoding=None)
去掉只含空白(含换行)的行,保留带标签的行
reparsed = '\n'.join([line for line in rough_string.split('\n') if line.strip()])
toprettyxml() 支持三个主要参数,用对了能省不少事:
" "(两个空格),可改成 "\t" 或 " "
"\n",Windows 下可设为 "\r\n"
"utf-8";设为 None 则返回 Unicode 字符串(推
荐)如果对格式要求高,或者要频繁生成 XML,建议换用 xml.etree.ElementTree 配合 xml.dom.minidom 做最终美化,或直接用第三方库如 lxml:
# 简单又干净:ElementTree + minidom 衔接 import xml.etree.ElementTree as ET from xml.dom import minidomroot = ET.fromstring(your_xml_string) rough = ET.tostring(root, encoding="unicode") reparsed = minidom.parseString(rough).toprettyxml(indent=" ") reparsed = '\n'.join([s for s in reparsed.split('\n') if s.strip()])
基本上就这些。不用强求 toprettyxml() 一步到位,加一行清理逻辑,输出就干净多了。
# python
# windows
# 编码
# 字节
# win
# 格式化输出
# 为什么
相关文章:
建站之星伪静态规则如何设置?
英语简历制作免费网站推荐,如何将简历翻译成英文?
网站制作大概要多少钱一个,做一个平台网站大概多少钱?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
如何快速搭建FTP站点实现文件共享?
如何在万网ECS上快速搭建专属网站?
宝塔建站无法访问?如何排查配置与端口问题?
Python多线程使用规范_线程安全解析【教程】
网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?
如何在阿里云完成域名注册与建站?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
详解jQuery中基本的动画方法
实例解析Array和String方法
建站之星3.0如何解决常见操作问题?
哈尔滨网站建设策划,哈尔滨电工证查询网站?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
c++怎么用jemalloc c++替换默认内存分配器【性能】
如何实现建站之星域名转发设置?
网站建设设计制作营销公司南阳,如何策划设计和建设网站?
如何快速生成可下载的建站源码工具?
如何快速搭建自助建站会员专属系统?
常州自助建站费用包含哪些项目?
如何快速搭建高效WAP手机网站吸引移动用户?
济南网站制作的价格,历城一职专官方网站?
内部网站制作流程,如何建立公司内部网站?
如何用狗爹虚拟主机快速搭建网站?
建站之星安装模板失败:服务器环境不兼容?
如何高效完成自助建站业务培训?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
如何在宝塔面板中修改默认建站目录?
如何通过免费商城建站系统源码自定义网站主题与功能?
如何使用Golang table-driven基准测试_多组数据测量函数效率
网站制作报价单模板图片,小松挖机官方网站报价?
创业网站制作流程,创业网站可靠吗?
如何通过VPS搭建网站快速盈利?
建站主机与虚拟主机有何区别?如何选择最优方案?
建站VPS选购需注意哪些关键参数?
建站主机系统SEO优化与智能配置核心关键词操作指南
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
如何基于PHP生成高效IDC网络公司建站源码?
如何通过山东自助建站平台快速注册域名?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
香港服务器租用费用高吗?如何避免常见误区?
如何制作算命网站,怎么注册算命网站?
免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?
建站上传速度慢?如何优化加速网站加载效率?
制作网站的基本流程,设计网站的软件是什么?
javascript中对象的定义、使用以及对象和原型链操作小结
建站主机无法访问?如何排查域名与服务器问题
*请认真填写需求信息,我们会在24小时内与您取得联系。