js2xmlparser没有解析数字键

时间:2017-08-16 15:28:10

标签: json node.js xml

我正在尝试使用js2xmlparser从json对象创建xml文件。我的代码如下:

var js2xmlparser = require("js2xmlparser");

var data = {
    "product": "painting",
    "88CODE": "-2"
};

console.log(js2xmlparser.parse("product", data));

但它会抛出如下错误:

E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:94
                throw new Error("name should not contain characters not"
                ^

Error: name should not contain characters not allowed in XML names
    at XmlElement.set [as name] (E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:94:23)
    at new XmlElement (E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:72:20)
    at XmlElement.element (E:\projects\xml-generator\node_modules\xmlcreate\lib\nodes\XmlElement.js:218:23)
    at parseObjectOrMapEntry (E:\projects\xml-generator\node_modules\js2xmlparser\lib\main.js:130:33)
    at parseObjectOrMap (E:\projects\xml-generator\node_modules\js2xmlparser\lib\main.js:152:13)
    at parseValue (E:\projects\xml-generator\node_modules\js2xmlparser\lib\main.js:220:9)
    at parseToDocument (E:\projects\xml-generator\node_modules\js2xmlparser\lib\main.js:249:5)
    at Object.parse (E:\projects\xml-generator\node_modules\js2xmlparser\lib\main.js:265:20)
    at Object.<anonymous> (E:\projects\xml-generator\server.js:16:26)
    at Module._compile (module.js:570:32)

我希望其中一个节点为&lt; 88CODE&gt;。我该如何解决这个问题? 感谢

2 个答案:

答案 0 :(得分:1)

xml标准声明xml元素名称必须以字母或下划线开头...因此您的错误。您的数据属性88CODE必须重命名。

所以简短的回答是,如果你想要一个名为88CODE的元素......你会得到这个错误。考虑将元素重命名为其他内容......也许_88CODE

Xml元素命名规则

  • 元素名称区分大小写。
  • 元素名称必须以字母或下划线开头。
  • 元素名称不能以字母xml(或XML,或Xml等)
  • 开头
  • 元素名称可以包含字母,数字,连字符,下划线和句点。
  • 元素名称不能包含空格。

sorry.. w3schools reference :)

答案 1 :(得分:0)

这样可以正常工作或更改第二个字段的名称,因此它必须以字母或_

开头
var js2xmlparser = require("js2xmlparser");

var data = {
"product": "painting",
"_88CODE": "-2"
};

console.log(js2xmlparser.parse("product", data));