新手求助:如何用Logic Apps从邮件侧边表格提取数据至Jira工单
Logic Apps提取侧边式HTML表格数据并同步到Jira的解决方案
核心思路
针对这种标题与值同行的侧边式HTML表格,直接用字符串替换或通用数组操作容易踩格式坑,最可靠的方式是用XPath解析HTML节点提取键值对,再转换成Jira支持的Markdown表格。
具体步骤
触发流程
- 添加Office 365 Outlook的「当收到新电子邮件(V3)」触发器,配置目标收件箱、主题过滤等触发条件。
解析HTML表格提取键值对
- 添加「Compose」动作,输入动态内容里的邮件「Body」(即邮件正文)。
- 添加「Select」动作:
- 在「From」栏输入XPath表达式,提取表格里的所有行节点:
xpath(outputs('Compose'), '//table/tr') - 在映射区设置两个字段:
- 「字段名」:用XPath提取每行第一个
<td>的内容并去空格:trim(xpath(item(), 'string(td[1])')) - 「字段值」:用XPath提取每行第二个
<td>的内容并去空格:trim(xpath(item(), 'string(td[2])'))
- 「字段名」:用XPath提取每行第一个
[ {"字段名": "Number:", "字段值": "12"}, {"字段名": "Priority:", "字段值": "High"}, {"字段名": "Status:", "字段值": "Open"}, {"字段名": "Time:", "字段值": "14:26:39"} ] - 在「From」栏输入XPath表达式,提取表格里的所有行节点:
转换为Jira兼容的Markdown表格
- 添加「Apply to each」动作,选择上一步「Select」输出的数组。
- 在循环内添加「Compose」动作,拼接每行的表格内容:
| @{item()['字段名']} | @{item()['字段值']} | - 添加「Join」动作,将循环输出的所有行用换行符
\n连接,再手动拼接表头和分隔线,最终组合成完整的Markdown表格:
生成的表格示例:concat('| 字段 | 值 |\n| --- | --- |\n', join(body('Apply_to_each'), '\n'))| 字段 | 值 | | --- | --- | | Number: | 12 | | Priority: | High | | Status: | Open | | Time: | 14:26:39 |
同步到Jira工单
- 添加Jira连接器的「创建问题」或「添加评论到问题」动作,将上一步生成的Markdown表格填入问题描述或评论内容字段,完成配置后即可同步数据。
为什么之前的方法失效
你尝试的字符串替换、数组筛选方案,容易受邮件正文里的额外空格、换行符、HTML标签干扰,导致分割结果混乱。而XPath直接基于HTML节点结构提取数据,能规避这些格式问题,适配侧边式表格的特殊结构。
内容的提问来源于stack exchange,提问作者user20829088
相关产品推荐
相关产品推荐

