如何在XML格式的HTML邮件模板中添加缩进、空格及制表符
解决方案及示例
方法1:通过CSS样式实现HTML邮件缩进(推荐)
在CDATA块内的HTML中嵌入CSS样式,直接控制段落缩进,无需依赖特殊实体,XML解析时不会报错,还能统一管理格式:
<email-template> <subject>订单确认通知</subject> <body> <![CDATA[ <html> <head> <style> .indent { text-indent: 2em; margin: 8px 0; } </style> </head> <body> <p>尊敬的客户:</p> <p class="indent">您的订单已成功提交,订单号:202405201001。我们将尽快安排发货,请留意物流通知。</p> <p class="indent">如有疑问,可联系客服热线:400-123-4567。</p> <p>感谢您的支持!</p> </body> </html> ]]> </body> </email-template>
方法2:用xml:space="preserve"保留原生空白
如果是纯文本邮件模板,给文本节点添加xml:space="preserve"属性,XML解析器会保留节点内的所有空格、制表符和换行,直接手动输入缩进即可:
<email-template> <subject>会议提醒</subject> <body xml:space="preserve"> 亲爱的同事: 提醒您明天(5月21日)下午2点在3楼会议室参加项目评审会,请提前准备汇报材料。 会议议程: - 各模块进度汇报 - 问题讨论与方案确定 - 下一步工作计划 请准时参会,谢谢! </body> </email-template>
方法3:使用不换行空格实体
XML中 不是预定义实体,需转义为&nbsp;,HTML解析时会还原为不换行空格,实现缩进:
<email-template> <subject>售后反馈回复</subject> <body> <html> <body> <p>尊敬的用户:</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;您反馈的问题已收到,技术部门正在排查,预计3个工作日内回复。</p> <p>&nbsp;&nbsp;&nbsp;&nbsp;期间如有其他问题,欢迎随时联系我们。</p> <p>祝您生活愉快!</p> </body> </html> </body> </email-template>
注意事项
- 不要直接使用
 ,它不属于XML预定义实体,会导致解析报错,除非自定义实体(不推荐,增加复杂度)。 - CSS样式方案最适合HTML邮件,能灵活调整缩进大小和样式,避免重复输入空格。
- 使用
xml:space="preserve"时,需注意节点内的所有空白都会被保留,排版要严谨。
内容的提问来源于stack exchange,提问作者FP55
相关产品推荐
相关产品推荐

