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

如何从Postman解码后的响应中提取<fact>标签内的内容?

提取HTML中<fact>标签内的内容

问题背景

从Postman响应解码得到以下HTML内容,需要提取所有<fact>标签之间的文本:

<div class="stl_01" style="left:7.6167em;top:6.1257em;"><span class="stl_05 stl_06 stl_07"><fact value="1%" class="accepted">百分之一</fact> </span></div>
<div class="stl_01" style="left:7.6167em;top:7.6257em;"><span class="stl_05 stl_06 stl_07"><fact value="2%" class="accepted">百分之二</fact> </span></div>
<div class="stl_01" style="left:7.6167em;top:9.1257em;"><span class="stl_05 stl_06 stl_07"><fact value="3%" class="accepted">百分之三</fact> </span></div>
<div class="stl_01" style="left:7.6167em;top:10.6257em;"><span class="stl_05 stl_06 stl_07"><fact value="4%" class="accepted">百分之四</fact> </span></div>

解码原始数据的代码片段:

var parsedBase64=CryptoJS.enc.Base64.parse(ContentText);
console.log(parsedBase64);

var parsedStr = parsedBase64.toString(CryptoJS.enc.Utf8);
console.log("Testing for content:" + parsedStr + "End content");

方案1:正则表达式提取

适合结构简单的HTML,直接在解码后的字符串上匹配:

在Postman脚本中,解码后添加正则匹配逻辑:

var parsedBase64=CryptoJS.enc.Base64.parse(ContentText);
var parsedStr = parsedBase64.toString(CryptoJS.enc.Utf8);

// 匹配<fact>标签内的文本内容
const factRegex = /<fact[^>]*>([^<]+)<\/fact>/g;
const results = [];
let match;
while ((match = factRegex.exec(parsedStr)) !== null) {
    results.push(match[1].trim()); // 清理文本首尾空格
}

console.log("提取的内容:", results);
// 可选:将结果存入Postman环境变量
pm.environment.set("factContents", JSON.stringify(results));

说明:正则/<fact[^>]*>([^<]+)<\/fact>/g会匹配所有<fact>标签,捕获标签内的纯文本,trim()用于去除文本前后的冗余空格。

方案2:DOM解析(更可靠)

如果HTML结构复杂(比如标签嵌套、属性多变),DOM解析的稳定性远高于正则,Postman沙箱支持标准DOM API:

var parsedBase64=CryptoJS.enc.Base64.parse(ContentText);
var parsedStr = parsedBase64.toString(CryptoJS.enc.Utf8);

// 创建虚拟DOM解析器
const parser = new DOMParser();
const doc = parser.parseFromString(parsedStr, "text/html");

// 获取所有<fact>标签并提取文本
const factElements = doc.querySelectorAll("fact");
const results = Array.from(factElements).map(el => el.textContent.trim());

console.log("提取的内容:", results);
// 可选:将结果存入Postman环境变量
pm.environment.set("factContents", JSON.stringify(results));

说明:通过DOMParser将HTML字符串转为DOM文档,用querySelectorAll精准获取所有<fact>元素,再提取每个元素的文本内容,这种方法能适配绝大多数HTML结构,避免正则的匹配漏洞。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 16:18:24