2017-08-16 16 views
1

js2xmlparserを使用してjsonオブジェクトからxmlファイルを作成しようとしています。 >js2xmlparserが数値キーを解析していません

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するノードのいずれかをしたい:

var js2xmlparser = require("js2xmlparser"); 

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

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

しかし、それは以下のようにエラーがスローされます:私のコードは以下の通りです。どうすればこの問題を解決できますか? ありがとう

答えて

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)); 
で開始する必要がありますので、これは正常に動作するか、または2番目のフィールドの名前を変更します
関連する問題