2017-08-16 24 views
1

我想從json對象,使用js2xmlparser創建xml文件。我的代碼如下:js2xmlparser不解析數字鍵

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) 

我希望節點之一是< 88CODE>。我如何解決這個問題? 謝謝

回答

1

xml標準規定xml元素名稱必須以字母或下劃線開頭......因此您的錯誤。您的數據屬性88CODE必須重命名。

所以簡短的答案是,如果你想要一個元素的名稱88CODE ......你會得到這個錯誤。考慮元素重命名爲別的東西......也許_88CODE

Xml元素的命名規則

  • 元素名稱是區分大小寫的。
  • 元素名稱必須以字母或下劃線開頭。
  • 元素名稱不能以字母XML(或XML或XML等)
  • 元素名稱可以包含字母,數字,連字符,下劃線和句點開始。
  • 元素名稱不能包含空格。

sorry.. w3schools reference :)

0

這將正常工作或更改第二個字段的名稱,所以它必須以字母開頭或_

var js2xmlparser = require("js2xmlparser"); 

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

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