节点 xml 包不适用于其中包含 : 的键

发布于 2025-01-10 15:23:25 字数 1068 浏览 0 评论 0原文

我将从我的 Node 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));

当使用密钥时它给出这样的错误

在此处输入图像描述

I am going to send XML response from my node js api. Currently I am using xml - npm package

When I am sending data like following

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));

When using the key with : it is giving error like this

enter image description here

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

¢蛋碎的人ぎ生 2025-01-17 15:23:25

标记中的冒号表示名称空间前缀,并且由于缺少 g: 名称空间,因此它不是有效的 XML,而是节点 xml 问题。

您需要定义命名空间,类似于 Google Merchant,因此请尝试将其添加到根目录的 _attr 中,如下所示:

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

检查:带冒号的 XML 语法是什么意思?

Colon in the tag means namespace prefix, and because you're missing a g: namespace, it's rather not a valid XML, than a node-xml problem.

you need to define namespace, looks like Google Merchant, so try adding it in the root's _attr like this:

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

check: What does the XML syntax with a colon mean?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文