将 HTML 转换为 Azure 逻辑应用程序中的文本后如何查找特定文本?

How to find particular text after convert HTML to text in azure logic app?

<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta content="text/html; charset=utf-8"><meta name="Generator" content="Amazon WorkMail v3.1.358.0"></head><body><table class="Table" width="909" style="border-collapse:collapse; width:909px"><tbody><tr><td style="background-color:#d9e1f2; border-bottom:1px solid black; border-left:1px solid black; border-right:1px solid black; border-top:1px solid black; height:19px; padding:0cm 7px 0cm 7px; width:315px"><p align="center" style="text-align:center"><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Type</span></span></span></p></td><td style="background-color:#d9e1f2; border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:1px solid black; height:19px; padding:0cm 7px 0cm 7px; width:215px"><p align="center" style="text-align:center"><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Detail</span></span></span></p></td><td style="height:19px; padding:0cm 7px 0cm 7px; width:64px">&nbsp;</td></tr><tr><td style="border-bottom:1px solid black; border-left:1px solid black; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:315px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Bot ID</span></span></span></p></td><td style="border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:215px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">4122</span></span></span></p></td><td style="height:19px; padding:0cm 7px 0cm 7px; width:64px">&nbsp;</td></tr><tr><td style="border-bottom:1px solid black; border-left:1px solid black; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:315px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Bot Name </span></span></span></p></td><td style="border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:215px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Route U2K2 -CR </span></span></span></p></td><td style="height:19px; padding:0cm 7px 0cm 7px; width:64px">&nbsp;</td></tr><tr><td style="border-bottom:1px solid black; border-left:1px solid black; border-right:1px solid black; border-top:none; height:38px; padding:0cm 7px 0cm 7px; width:315px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Bot Overview </span></span></span></p></td><td style="border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; height:38px; padding:0cm 7px 0cm 7px; width:215px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">BOT to process all the SR's raised in remedy for Route U2K2. </span></span></span></p></td><td style="height:38px; padding:0cm 7px 0cm 7px; width:64px">&nbsp;</td></tr><tr><td style="border-bottom:1px solid black; border-left:1px solid black; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:315px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Stakeholder/Business approver Name </span></span></span></p></td><td style="border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:215px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><u><span style="color:#0563c1"><a href="mailto:Ellen.Daniel@unilever.com" style="color:#0563c1; text-decoration:underline">someemail.com</a></span></u></span></span></p></td><td style="height:19px; padding:0cm 7px 0cm 7px; width:64px">&nbsp;</td></tr><tr><td style="border-bottom:1px solid black; border-left:1px solid black; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:315px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Estimated Run Costs</span></span></span></p></td><td style="border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:215px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif">&nbsp;</span></span></p></td><td style="height:19px; padding:0cm 7px 0cm 7px; width:64px">&nbsp;</td></tr><tr><td style="border-bottom:1px solid black; border-left:1px solid black; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:315px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif"><span style="color:black">Margin (Euros) - Optional </span></span></span></p></td><td style="border-bottom:1px solid black; border-left:none; border-right:1px solid black; border-top:none; height:19px; padding:0cm 7px 0cm 7px; width:215px"><p><span style="font-size:11pt"><span style="font-family:&quot;Calibri&quot;,sans-serif">&nbsp;</span></span></p></td><td style="height:19px; padding:0cm 7px 0cm 7px; width:64px">&nbsp;</td></tr></tbody></table></body></html>

电子邮件正文 html 已转换为如下文本,我需要找到所需的数据并将这些数据放在某处。

如何拆分和获取特定需要的文本。

逻辑应用程序设计:https://i.stack.imgur.com/GB3AF.png

电子邮件正文图片:https://i.stack.imgur.com/6k89j.png

数据不在键值对中


Detail

Bot ID

4122

Bot Name 

Route U2K2 -CR 

Bot Overview 

BOT to process all the SR's raised in remedy for Route U2K2. 

Stakeholder/Business approver Name 


这不是真正的完整答案,但它可以帮助您入门。

you can see here, 一样,ALA 支持 xpath 并有一个 xml 解析器构建它。如果你可以使用它,它将使一切变得容易得多,并且避免了转换和提取的需要。据我所知,ALA 没有 html 解析器。

问题是您发布的 html 不是有效的 xml。例如,<meta> 节点没有关闭,整个节点没有根节点。如果这些是固定的并且你有一个有效的xml,使用link中的模板可以轻松输出你需要的东西。

例如

xpath([your valid xmlstring],'//tr/td[./p//span[./text()="Bot Name "]]/following-sibling::td/p//span[@style="color:black"]/text()')

应该输出:

Route U2K2 -CR 

同样,

xpath([your valid xmlstring],'//tr/td[./p//span[./text()="Bot Overview "]]/following-sibling::td/p//span[@style="color:black"]/text()')

应该输出:

BOT to process all the SR's raised in remedy for Route U2K2. 

等正如我所说,不是一个完整的答案...

将html转成文本后,可以用substring('<text>', <startIndex>, <length>)得到你想要的值。

在使用substring('<text>', <startIndex>, <length>)之前,您需要先获取<startIndex><length>

获取startIndex

可以用indexOf(variables('var'),'Bot ID')得到Bot ID的索引,然后用add(indexOf(variables('var'),'Bot ID'),6)得到Bot ID后面的索引。

获取长度

可以用indexOf(variables('var'),'Bot Name')得到Bot Name的索引,然后用sub(indexOf(variables('var'),'Bot Name'),add(indexOf(variables('var'),'Bot ID'),6))得到长度

这样的表达式:

substring(variables('var'),add(indexOf(variables('var'),'Bot ID'),6),sub(indexOf(variables('var'),'Bot Name'),add(indexOf(variables('var'),'Bot ID'),6)))

设计是这样的:

我做了一个测试:

备注

文本有\n开始换行,所以需要根据自己的文本调整startIndexlength的值。