PowerBI Compose表达式问题:提取HTML邮件中的第二个或第三个表格
PowerBI Compose表达式问题:提取HTML邮件中的第二个或第三个表格
嘿,我来帮你捋一捋怎么调整表达式提取第二个、第三个表格~
首先,你当前用的concat('<table',first(split(triggerOutputs()?['body/body'],'<table')))是基于把HTML内容按<table>分割成数组的思路,但这里有个小细节:first()函数取的是分割后数组的第一个元素(也就是索引为0的位置,对应第一个<table>标签之前的内容)。如果你的HTML邮件开头就是表格,那这个元素是空字符串,拼出来的第一个表格才是对的,但如果有前置内容,这个写法就会出错。
不过不管怎样,要提取第N个表格,核心是直接用数组索引来指定位置,不用first():
提取第二个表格
把表达式里的first()换成数组索引[2],然后拼接<table>即可:
concat('<table', split(triggerOutputs()?['body/body'], '<table')[2])
提取第三个表格
同理,换成索引[3]:
concat('<table', split(triggerOutputs()?['body/body'], '<table')[3])
为什么是索引2和3呢?给你解释下分割后的数组结构:
- 索引0:第一个
<table>标签之前的所有内容(如果邮件开头就是表格,这部分是空字符串) - 索引1:第一个
<table>标签后面的内容(也就是第一个表格的主体部分) - 索引2:第二个
<table>标签后面的内容 - 索引3:第三个
<table>标签后面的内容
因为split函数会把<table>本身去掉,所以我们要手动把<table>加回去,这就是concat('<table', ...)的作用啦。
备注:内容来源于stack exchange,提问作者Dolf van Coller
相关产品推荐
相关产品推荐

