如何使用xml2js从SOAP XML响应中提取Token并获取_字段值
_键的含义
这是xml2js库的内置序列化规则:当某个XML节点同时存在文本内容和节点属性时,库会自动将节点的纯文本内容存入_字段,节点的全部属性存入$字段。你遇到的场景里返回的<Token>节点带有xsi:type属性,同时节点内的文本就是实际的Token值,所以才会生成你看到的输出结构。
获取Token值的方法
你当前打印的对象就是包含_字段的目标对象,直接在现有取值路径后追加._即可拿到Token值:
// 替换你原来的console.log行即可 const token = result['SOAP-ENV:Envelope']['SOAP-ENV:Body'][0]['ns1:LoginResponse'][0]['Token']['0']._; console.log(token); // 输出 312cb0ee6c346ee266dc95bc6c688021
如果担心某一层取值为undefined报错,可以用可选链优化兼容性:
const token = result?.['SOAP-ENV:Envelope']?.['SOAP-ENV:Body']?.[0]?.['ns1:LoginResponse']?.[0]?.['Token']?.[0]?._;
内容的提问来源于stack exchange,提问作者a105
相关产品推荐
相关产品推荐

