2017-08-29 12 views
0

私はnodeJsでxml2jsonライブラリを使用しています。私はこのXMLを解析しようとしているxml2jsonは配列から1オブジェクトを返します

<SchedulingModel > 
    <Jobs> 
    <Job Id="1"> 
     <Operations> 
     </Operations> 
    </Job> 
    <Job Id="2"> 
     <Operations> 
     </Operations> 
    </Job> 
    <Job Id="3"> 
     <Operations> 
     </Operations> 
    </Job> 
    <Job Id="4"> 
     <Operations> 
     </Operations> 
    </Job> 
<Job Id="5"> 
     <Operations> 
     </Operations> 
    </Job> 
    </Jobs> 
</SchedulingModel> 

const parser = new xml2js.Parser(); 
parser.parseString(plannerXML , (err, result) => { 
     console.log(result["SchedulingModel"]["Jobs"]); 
}); 

しかし結果に解析した後、私はちょうど1 オブジェクト内のジョブ配列

を持っている私は、XMLを持っています
console.log(result); 

{ SchedulingModel: 
    Jobs: [ [Object] ] 
} 

何が間違っていると言えますか? このXMLからすべてのオブジェクトが必要です。

答えて

1

最初に私はあなたがxml2jsonパッケージを使用していないことに気付きました。使用しているパッケージはxml2jsです。私はあなたのビルドを試み、xml2jsはあなたが想像するように動作しません、それはジョブの配列として "ジョブ"と呼ばれる単一のオブジェクトを作成します。より視覚的なテストを行うには、次のように文字列化してください:

parser.parseString(plannerXML , (err, result) => { 
     console.log(JSON.stringify(result["SchedulingModel"]["Jobs"])); 
}); 

私はそれが役に立ちそうです。

+0

をはいあなたは正しいです、私はちょうど私が試した、xml2jsを使用しています今日はたくさんの図書館があり、例ではそれを削除するのを忘れてしまった。私はresult ["SchedulingModel"] ["Jobs"] [0] ["Job"]のように使用するのが好きです。ちょうどこのように私はジョブの配列を受け取ります。しかし、どうもありがとうございます! –

2

私は通常、xmlからjsonへの変換に希望の結果を簡単に変更するためにcamaroを使用します。

あなたはサンプル(例えば操作にいくつかのテキストを追加しました)の下で試すことができます。

const xml = '<SchedulingModel><Jobs><Job Id="1"><Operations>a</Operations></Job><Job Id="2"><Operations>b</Operations></Job><Job Id="3"><Operations>c</Operations></Job><Job Id="4"><Operations>d</Operations></Job><Job Id="5"><Operations>e</Operations></Job></Jobs></SchedulingModel>' 

const temp = { 
    SchedulingModel: ['/SchedulingModel/Jobs/Job', { 
     Id: '@Id', 
     Operations: 'Operations' 
    }] 
} 

const transform = require('camaro') 
const results = transform(xml, temp) 

console.log(JSON.stringify(results, null, 2)) 

応答:

{ 
    "SchedulingModel": [ 
     { 
      "Id": "1", 
      "Operations": "a" 
     }, 
     { 
      "Id": "2", 
      "Operations": "b" 
     }, 
     { 
      "Id": "3", 
      "Operations": "c" 
     }, 
     { 
      "Id": "4", 
      "Operations": "d" 
     }, 
     { 
      "Id": "5", 
      "Operations": "e" 
     } 
    ] 
} 
+0

ありがとうございました!私は将来しよう! –

関連する問題