2017-03-15 2 views
0

の配列に変換: -xml2js - xmlタグの値は、私がJSONにXMLを変換するには、次のコードを使用していますjsons

var parseString = require('xml2js').parseString; 

var xml = "<root><param_name>Hello</param_name><param_entry> xml2js! </param_entry> </root>"; 

parseString(xml, {trim: true},function(err,result){ 
console.dir(JSON.stringify(result)); 
}); 

それは次の結果を返している - それは戻っている

{ 
    "root":{ 
    "param_name":[ 
    "Hello" 
    ], 
    "param_entry":[ 
    " xml2js!" 
    ] 
    } 
    } 

オブジェクトのコレクションとしての値、つまり「param_name」:[
"Hello" ]。

しかし、私は単純なキーと値のフォームとしてそれをしたい。私の結果のJSONで は次のようになります - それはここで間違って起こっていること

{ 
    "root":{ 
     "param_name": 
     "Hello" 
     , 
     "param_entry": 
     " xml2js!" 

    } 
} 

は何ですか?次のようにパーサーのオプション:使用{偽explicitArray} -

答えて

1

溶液がである

var xml2js = require('xml2js'); 

var parser = new xml2js.Parser({explicitArray : false}); 
var xml = "<root><param_name>Hello</param_name><param_entry> xml2js! </param_entry> </root>"; 

parser.parseString(xml,function(err,result){ 
    console.dir(JSON.stringify(result)); 
}); 

xml2jsのNPMドキュメントあたりよう - デフォルトでは「真」に設定されている - そうすべての子ノードが配列に入れられます。 これを「false」に設定すると、子ノードが複数回存在する場合、子ノードが配列に追加されます。 、つまり複数のタグが存在します。

関連する問題