You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Logic App的Inline Code连接器中获取HTML元素的值

DOM API不可用的原因

Logic App 内置Inline Code运行的是受限Node.js服务端环境,没有浏览器提供的document、window等全局DOM对象,getElementById、getElementsByTagName等都是浏览器专属的DOM操作接口,服务端环境不存在这类API,因此运行报错。

表格数据提取实现方案

你可以通过正则匹配直接从HTML文本中提取目标表格和对应单元格内容,不需要依赖DOM API,适配Logic App的运行环境,完整代码如下:

var response = workflowContext.trigger.outputs.body; // API Response
var multiBody = response.body.$multipart[4].body;    // 取对应分片的HTML内容

// 1. 匹配所有table标签内容,取第5个表格(对应你之前代码的[4]下标)
const tableReg = /<table[^>]*>[\s\S]*?<\/table>/gi;
const allTables = multiBody.match(tableReg) || [];
const targetTable = allTables[4]; // 这里下标对应你要的第N个表格,根据实际调整
if (!targetTable) throw new Error("未找到目标表格");

// 2. 匹配表格内所有行<tr>内容
const rowReg = /<tr[^>]*>[\s\S]*?<\/tr>/gi;
const allRows = targetTable.match(rowReg) || [];
const targetRow = allRows[0]; // 取第一行,对应你之前的rows[0]
if (!targetRow) throw new Error("未找到目标行");

// 3. 匹配行内所有单元格<td>文本
const cellReg = /<td[^>]*>([\s\S]*?)<\/td>/gi;
const allCells = [];
let match;
while ((match = cellReg.exec(targetRow)) !== null) {
  // 去除标签、空格,保留纯文本
  const cellText = match[1].replace(/<[^>]+>/g, '').trim();
  allCells.push(cellText);
}
const targetText = allCells[1]; // 取第二个单元格,对应你之前的cells[1]

// 4. 提取LTV和CLTV值
const firstValue = targetText.substring(0, targetText.indexOf('/') - 1);        // LTV
const secondValue = targetText.substring(targetText.indexOf('/') + 2, targetText.lastIndexOf('/') - 1);      // CLTV

// 返回你需要的结果
return {
  LTV: firstValue,
  CLTV: secondValue,
  rawCellText: targetText
};
  • 正则的匹配规则可以根据你实际返回的HTML结构微调,如果表格标签有特殊属性,调整对应正则的匹配规则即可
  • 如果需要提取更多行和单元格,修改对应下标或者加循环遍历即可

内容的提问来源于stack exchange,提问作者Usama

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 08:21:02