web-dev-qa-db-ja.com

NodeJSを使用してXMLをJSONに変換する

次のxmlをjsonに変換しようとしているため、TS-tc-dtへのマッピングを取得する必要があります

ここにXMLがあります

<?xml version="1.0" encoding="UTF-8"?>
<TestScenario>
   <TestSuite name="TS_EdgeHome">
      <TestCaseName name="tc_Login">dt_EdgeCaseHome,dt_EdgeCaseRoute</TestCaseName>
      <TestCaseName name="tc_Logout">dt_EdgeCaseRoute</TestCaseName>
   </TestSuite>
   <TestSuite name="TS_EdgePanel">
      <TestCaseName name="tc_AddContract">dt_EdgeCaseHome,dt_EdgeCaseSpectrum</TestCaseName>
   </TestSuite>
      <TestSuite name="TS_EdgeRoute">
      <TestCaseName name="tc_VerifyContract">dt_EdgeCaseRoute</TestCaseName>
      <TestCaseName name="tc_Payment">dt_EdgeCaseRoute</TestCaseName>
   </TestSuite>
   <TestSuite name="TS_EdgeSpectrum">
      <TestCaseName name="tc_ClientFeedback">dt_EdgeCaseSpectrum</TestCaseName>
   </TestSuite>
</TestScenario>

NodeJSでこれを実現するにはどうすればよいですか?

11
Dinesh

xMLファイルがある場合は、nodejsでfsを使用してそのXMLファイルを読み取ることができ、「xml2json」npmパッケージを使用できます。

    const parser = require('xml2json');
    const fs = require("fs")



    fs.readFile(uploadedFilePath, function(err,data){

        if(err) {
            return res.send({message:err});
        } else {

            jsonfile = JSON.parse(parser.toJson(data,{reversible: true}));

        }

    });
0
Dushan

Cruftless 一致させるデータ構造に「注釈を付ける」ことができ、同じデータのJSON表現にバインドする方法を指定できます。

したがって、次のようにテンプレートを定義すると、

<TestScenario>
  <TestSuite name="{{name}}"><!--suites|array-->
    <TestCaseName name="{{name}}">{{data}}</TestCaseName><!--cases|array-->
  </TestSuite>
</TestScenario>

次に、そこから作成されたオブジェクトに対して.fromXMLを呼び出し、解析するXMLを渡すと、次のようになります。

{
  suites: [
    { name: 'tc_Logout', data: 'dt_EdgeCaseRoute' },
    {
      name: 'tc_AddContract',
      data: 'dt_EdgeCaseHome,dt_EdgeCaseSpectrum'
    },
    { name: 'tc_Payment', data: 'dt_EdgeCaseRoute' },
    { name: 'tc_ClientFeedback', data: 'dt_EdgeCaseSpectrum' }
  ]
}
0