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

如何用XPath从Power Automate的HTTP with Azure AD结果提取网页内容?

解决方案

方法一:用XPath提取(推荐结构稳定的场景)

Power Automate没有专门的HTML解析连接器,但可以通过表达式结合xpath()函数实现提取,步骤如下:

  • 把二进制内容转成字符串:添加Compose动作,输入表达式:
    base64ToString(body('Get_web_resource'))
    
  • 预处理HTML为可解析的XML:再添加一个Compose动作,清理HTML里可能导致XML解析失败的内容(比如DOCTYPE、未闭合标签),示例表达式:
    replace(replace(base64ToString(body('Get_web_resource')), '<!DOCTYPE[^>]*>', ''), '<br>', '<br/>')
    
    (根据实际网页结构,还可以补充其他未闭合标签的处理,比如<div>这类)
  • 执行XPath提取:添加第三个Compose动作,用xpath()函数抓目标内容,示例表达式:
    first(xpath(xml(outputs('Compose_2')), '//*[@id="Content"]/here/section[3]/ul/li/p/text()'))
    
    • 如果只需要第一个匹配的段落,用first();如果有多个匹配项,用join(outputs(...), '\n')把所有结果拼接起来。

方法二:用Split函数替代(适合结构简单固定的场景)

要是网页结构足够固定,直接通过目标段落的前后特征字符串拆分提取就行:

  • 转二进制为字符串:同样用Compose动作,表达式和上面一致:
    base64ToString(body('Get_web_resource'))
    
  • 拆分提取内容:添加Compose动作,根据目标段落的前后标记拆分,示例表达式:
    split(split(outputs('Compose'), '<section id="Content">here<section[3]/ul/li/p>')[1], '</p>')[0]
    
    • 注意:得把表达式里的<section id="Content">here<section[3]/ul/li/p>换成目标<p>标签的实际前置唯一特征字符串,</p>是段落的闭合标签,要是有其他更独特的后缀特征也可以替换。

注意点

  • 网页内容有动态变化或标签属性不稳定时,优先用XPath方法;
  • 转字符串如果出现乱码,试试加上编码参数:base64ToString(body('Get_web_resource'), 'UTF-8');
  • 测试的时候可以先把网页内容输出到邮件或Compose里,确认特征字符串或XPath的准确性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 11:50:24