StartTag:JSON 到 XML 转换时无效的元素名称错误

问题描述

我从 mongoDB 获取一个数组,格式如下:

const data = await db.collection('myCollection').find(filterQuery).project(projection).toArray();
data.map(record => { record._id = record._id.toString()  }); // Converting objectId to string
// Data is: 
[
    {
        "_id": "60bf71cb31657b3e2c5e8d3c","id": 1,"productName": "Phillips L8FB86ES","copy1": "De beste wasmachine voor jou.","copy2": "Vandaag besteld.","copy3": "Morgen wassen.",},...
]

我想将此数组转换为 XML

const convert = require('xml-js');
transformed = convert.json2xml(data,{ compact: true,ignoreComment: true,spaces: 4 });

在此过程中我没有遇到任何错误,但是我将此文件上传到了云存储,并且上传到那里的文件已损坏。我收到这样的错误

This page contains the following errors:
error on line 1 at column 2: StartTag: invalid element name
Below is a rendering of the page up to the first error.

我真的不知道这有什么问题。如有任何帮助,我将不胜感激。

注意:我也尝试过 xml2jsfast-xml-parserjstoxml 包。但结果没有改变。

注2:

当我登录 transformed(转换的 XML 对象)时

<0>
    <_id>60bf71cb31657b3e2c5e8d3c</_id>
    <id>1</id>
    <productName>Phillips L8FB86ES</productName>
    <copy1>De beste wasmachine voor jou.</copy1>
    <copy2>Vandaag besteld.</copy2>
    <copy3>Morgen wassen.</copy3>
</0>
</1>
   ...

编辑 3: 我了解到 XML 标签不能以数字开头。那么如何将数组转换为 XML?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)