节点 xml 包无法使用其中包含 : 的键

node xml package not working with keys having : in it

我将从我的节点 js api 发送 XML 响应。目前我正在使用 xml - npm package

当我发送如下数据时

res.set('Content-Type', 'text/xml');

let example5 = [
  {
    toys: [
      {
        _attr: {
          decade: '80s',
          locale: 'US'
        }
      },
      {
        toy: 'Transformers'
      },
      {
        toy: [
          {
            _attr: {
              knowing: 'half the battle'
            }
          },
          'GI Joe'
        ]
      },
      {
        toy: [
          {
            name: 'He-man'
          },
          {
            'g:brand': 'He-man'
          },
          {
            description: {
              _cdata: '<strong>Master of the Universe!</strong>'
            }
          }
        ]
      }
    ]
  }
]

return res.send(xml(example5, true));

将密钥与 一起使用时: 出现这样的错误

标记中的冒号表示命名空间前缀,并且因为您缺少 g: 命名空间,所以它不是有效的 XML,而不是 node-xml 问题。

你需要定义命名空间,看起来像 Google Merchant,所以尝试将它添加到根的 _attr 中,如下所示:

 {
    toys: [
      {
        _attr: {
          decade: '80s',
          locale: 'US',   
          "xmlns:g": "http://base.google.com/ns/1.0"
          //...

检查: