Postman Pre-request Script 中处理 XML 需用 JavaScript 构建字符串并赋值变量或请求体;支持静态模板插值、动态循环拼接、JSON 轻量转 XML,并须手动设置 Content-Type 为 application/xml。

在 Postman 的 Pre-request Script 中处理 XML,核心是用 JavaScript 构建或修改 XML 字符串,并将其赋值给环境变量、全局变量或直接写入请求体(如 Body → raw → XML)。Postman 本身不提供原生 XML 解析器,所以需手动拼接、模板替换或借助简单字符串操作——无需引入外部库,但要注意格式合法性与转义。
构建静态 XML 请求体
适合结构固定、仅需替换少量字段的场景。用反引号(`)写多行字符串,配合环境变量插值:
const xmlBody = ``; pm.variables.set("xml_payload", xmlBody); {{order_id}} {{customer_name}} {{amount}}
然后在 Request Body → raw 中选择 XML,并填入:{{xml_payload}}。
动态生成含循环或条件的 XML
当需要根据数组生成多个节点(如多个 ),可用 JavaScript 拼接:
const items = [
{ id: "101", name: "Laptop", qty: 2 },
{ id: "102", name: "Mouse", qty: 5 }
];
const itemsXml = items.map(item =>
`-
${item.id}
${pm.variables.replaceIn(item.name)}
${item.qty}
`
).join("");
const fullXml = `
ORD-2024-001
${itemsXml}
`;
pm.request.body.raw = fullXml;
注意:对可能含特殊字符(如 &、)的变量,建议用 pm.variables.replaceIn() 做基础替换,或自行实现简单转义函数。
从 JSON 转换为 XML(轻量级)
若已有 JSON 数据想转成扁平 XML(无嵌套/属性),可写简短转换逻辑:
const jsonData = {
"name": "Alice",
"email": "alice@example.com",
"active": true
};
function jsonToXml(obj) {
return Object.entries(obj)
.map(([k, v]) => `<${k}>${v}${k}>`)
.join("\n");
}
const xml = `\n${jsonToXml(jsonData)}\n `;
pm.variables.set("user_xml", xml);
该方法适用于键值简单、无数组/深层嵌套的场景。复杂结构建议在测试脚本或外部工具中预处理。
设置 Content-Type 并确保发送正确
XML 请求必须声明正确的请求头,否则服务端可能解析失败:
- 在 Pre-request Script 中添加:
pm.request.headers.add({key: 'Content-Type', value: 'application/xml'}); - 如果接口要求
text/xml,请按文档调整值 - 避免在 Body 中选错类型:务必在 Body → raw 下拉菜单中选择 XML(它会自动设 header,但手动设更可靠)









