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

使用NodeJS向Azure Service Bus推送XML数据显示为字符串的解决建议

问题:Azure Service Bus推送XML数据显示为字符串而非XML格式?

我使用以下代码向Azure Service Bus推送XML数据,但消息被推送为字符串而非XML格式。请问是否遗漏了某些配置参数?请给出建议。

const xml = `<p>This is <b>some</b> content.</content></p>`;
const message = {
    body: xml,
    contentType: 'application/xml; charset="utf-8"',
};
try {
    await sender.sendMessages(message);
    await sbClient.close();
} finally {
    await sbClient.close();
}

我尝试过设置以下几种contentType:

  • "application/atom+xml;type=entry;charset=utf-8"
  • "text/xml; encoding='utf-8'"
  • "application/xml; charset='utf-8'"
  • "application/xml"
解决方案建议
  • 修正XML语法错误:你提供的XML存在标签不匹配问题(<p>对应了</content>),非法的XML结构会导致接收端无法识别为XML格式,只能按字符串处理。先修正XML结构,确保标签闭合正确,比如将&lt;/content&gt;改为&lt;/p&gt;。

  • 优化contentType配置:建议使用标准的XML内容类型格式,避免不必要的转义或引号,示例如下:

    const message = {
        body: xml,
        contentType: 'text/xml; charset=utf-8',
    };
    

    text/xml和application/xml都是合法的XML内容类型,二选一即可,无需额外复杂参数。

  • 接收端需主动解析XML:Azure Service Bus的消息体本质是字节流,contentType仅作为元数据标记,告知接收端内容格式。接收消息时,需要根据contentType读取消息体字符串,再用XML解析库(如Node.js的xml2js、xmldom)将字符串解析为XML对象,而不是直接当作字符串使用。

内容的提问来源于stack exchange,提问作者Krishan Kant Sharma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:55:16