2017-08-01 8 views
0

node.jsをdiretlyに使用してXMLファイルをcsvファイルに変換しようとしています。node.jsでXMLをCSVに解析しています

<?xml version="1.0" encoding="UTF-8"?> 
<testResults version="1.2"> 
<httpSample ts="1501597136964" lb="req_10"> 
    <responseData class="java.lang.String">1501597138973</responseData> 
</httpSample> 
<httpSample ts="1501597136964" lb="req_10"> 
    <responseData class="java.lang.String">1501597139525</responseData> 
</httpSample> 
<httpSample ts="1501597136964" lb="req_10"> 
    <responseData class="java.lang.String">1501597139716</responseData> 
</httpSample> 
</testResults> 

私は<responseData class="java.lang.String">1501597138973</responseData>の値を取得することができる午前:

私のxmlファイルは次のようになります。 しかし、私はまた、私は私がこれを行うか、私が行かなければなら助けることができる任意の他のパッケージをチェックするべき私は

var xml2rec=require('xml2rec'); 
xml2rec('xmlFile.xml', 'httpSample', 'csvFile.csv'); 

xml2recパッケージを使用しています

タグ<httpSample>からts="1501597136964"lb="req_10"の値を解析したいですxmlをjsonに変換してから、json to csv ?? また、そうすることで、tslbという属性の値をhttpSampleというタグにすることができますか?

P.S.出力XMLファイルはJMeterレスポンスファイルです

答えて

1

xml構造はフラットではないので、これを行う最も良い方法はわかりませんが、csvに変換する前にフラット化する必要があります。

const transform = require('camaro') 
const json2csv = require('json2csv') 

const xml = ` 
<?xml version="1.0" encoding="UTF-8"?> 
<testResults version="1.2"> 
<httpSample ts="1501597136964" lb="req_10"> 
    <responseData class="java.lang.String">1501597138973</responseData> 
</httpSample> 
<httpSample ts="1501597136964" lb="req_10"> 
    <responseData class="java.lang.String">1501597139525</responseData> 
</httpSample> 
<httpSample ts="1501597136964" lb="req_10"> 
    <responseData class="java.lang.String">1501597139716</responseData> 
</httpSample> 
</testResults> 
` 
const template = { 
    data: ['//httpSample', { 
     ts: '@ts', 
     lb: '@lb', 
     resp: 'responseData' 
    }] 
} 

const result = transform(xml, template) 
const csv = json2csv({ data: result.data}) 
console.log(csv) 

出力:

"lb","resp","ts" 
"req_10","1501597138973","1501597136964" 
"req_10","1501597139525","1501597136964" 
"req_10","1501597139716","1501597136964" 
+0

だから我々は通常、CSVファイルにJSONを** JSONにXML **から移動して、**ない** ...これは私の場合に便利ですなら、私にしてみましょう。 –

関連する問題