Logic Apps:如何在HTML表格中注入HTML标签?
解决Logic Apps中Create HTML Table无法解析HTML标签的问题
嗨,我完全理解你遇到的困扰——Logic Apps的Create HTML table动作默认会自动转义所有HTML特殊字符(比如把<转成<,>转成>),所以你插入的<b>、<img>这些标签都会被当成纯文本显示,而不会被邮件客户端解析成格式或者图片。下面给你两种实用的解决方案:
方法1:反转义HTML标签(快速适配现有流程)
既然Create HTML table已经帮你生成了表格结构,只是转义了标签,那我们可以用replace函数把转义后的字符还原成原始HTML标签:
- 在
Create HTML table动作之后,添加一个Compose动作(或者直接在邮件内容里使用表达式)。 - 在Compose的输入框中,使用以下表达式:
replace(replace(body('Create_HTML_table'), '<', '<'), '>', '>')
这个表达式会把表格输出里的<替换回<,>替换回>,让HTML标签恢复可解析的状态。
3. 最后在发送邮件的动作中,把邮件内容设置为HTML格式,并引用这个Compose动作的输出,而不是直接用Create HTML table的输出。
方法2:手动构建HTML表格(完全自定义控制)
如果你想要更灵活的控制(比如自定义表格样式、更复杂的HTML元素),可以跳过Create HTML table动作,直接用字符串拼接来构建完整的HTML表格:
- 先初始化一个字符串变量(比如命名为
tableRows),用来存储表格的行内容。 - 在
Apply to Each遍历RSS条目的循环里,添加Append to string variable动作,输入以下表达式来拼接每一行的HTML:
concat( '<tr>', '<td>', item()['title'], '</td>', '<td>', item()?['summary'], '</td>', '<td><a href="', item()?['primaryLink'], '">', item()?['primaryLink'], '</a></td>', '<td>', item()?['links'][1], '</td>', '<td><img src="', item()?['links'][1], '" width="200" height="200"></td>', '<td><b>This text is bold</b></td>', '</tr>' )
- 循环结束后,再添加一个Compose动作,拼接表格的头部和尾部,形成完整的HTML:
concat( '<table border="1" cellpadding="4" cellspacing="0">', '<tr><th>Title</th><th>Description</th><th>URL</th><th>Thumbnail</th><th>Thumbnail Image</th><th>Test</th></tr>', variables('tableRows'), '</table>' )
- 把这个Compose的输出作为邮件的HTML内容发送即可,这样所有的HTML标签都会被正确解析。
注意事项
- 确保发送邮件的动作设置为HTML格式(大多数邮件动作都有这个选项,不要选纯文本)。
- 如果RSS源的内容里本身包含HTML特殊字符,手动拼接时要注意转义,但如果只是插入你自己的标签,就不需要额外处理。
内容的提问来源于stack exchange,提问作者bonnu18
相关产品推荐
相关产品推荐

