2017-06-29 19 views
-2

最近、私はCSVをXMLに変換するという課題に直面しました。 CSV file structurejavascriptを使用してcsvをxmlに変換する方法

CSVファイルについて以下のように ファイルの構造は以下の通りである: -

  1. 最初の3行CSVファイルのデータのタイプを記述する。

    • ヘッダ、ライン、ラインスプリットはそれぞれcsvファイルの1,2行目と3行目で表され、imgを参照することができます。
    • これらのラインはnodes.Fo例を規定する等

        CSVのライン番号4から始まる
      1. 残りの行は、それぞれのデータ・タイプ(ヘッダ、行及びLinesplitの値を表します)。
    • 行番号4の0番目のセルがデータ型を表します。タイプを識別し、適切なデータタイプ(HEADER、LINE、およびLINESPLIT)にコンテンツを配置する必要があります。

CSVからXMLファイルを生成するために使用される機能Iは、所望の結果を達成したが、私は、事前定義された任意DOMParserにまたは他を使用していません。

は全体的に、私が知りたいのですがキーポイントは以下のとおりです。

  1. 我々が作成しようとしているxmlファイルに最初にルートノードと他の定義済みのタグを設定する方法。例えば()。
  2. csvから取得したデータからタグを作成する方法。
  3. タグを作成した後に値をタグに挿入する方法。
  4. 最後に、ファイルを終了してダウンロードする方法。
+0

[なぜない、実際の質問を「誰かが私を助けることはできますか?」?] [尋ねる]、および特に読んで、[ヘルプ]を訪問し、お読みくださいます(http://メタ.stackoverflow.com/q/284236/18157)。 StackOverflowはディスカッションフォーラムではありません。 –

+0

申し訳ありませんジム、私は適切に質問を修正したと思います。 –

答えて

0
function csvXML(csv){ 

      var lines=csv.split(/\r?\n/); 
      var result = []; 
      var headerfile=""; 
      var Linefile=""; 
      var Linesplitfile=""; 
      var mainfile="<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<ns0:MT_CoupaNoddles_Invoice_File xmlns:ns0=\"http://superearth.com/xi/p2p/coupanoddels_integration\">\n <Invoice>"; 
      var HeaderPart=new Array(); 
      var LinePart=new Array(); 
      var LineSplitPart=new Array(); 
      var type; 
      var endstring="\n </Invoice>\n</ns0:MT_Coupa_Invoice_File>"; 
      var newLine= lines.length-1; 

      //Load all the 3 types in array Header Line And LineSplit 
      for(var i=0;i<3;i++) 
      { 
       if(i==0) 
       { 
        debugger; 

         var tempHeaderPart=lines[i].split(","); 

         for(var j=0;j<tempHeaderPart.length;j++) 
         { 
          if(tempHeaderPart[j]!="") 
          { 
           HeaderPart[j]=tempHeaderPart[j]; 
          } 
          else{ 
           debugger; 
           console.log("line number is: ",j,"The data is: ",tempHeaderPart[j]); 
           continue; 
          } 
         } 

       } 
       else if(i==1) 
       { 

        var tempLinePart=lines[i].split(","); 

         for(var j=0;j<tempLinePart.length;j++) 
         { 
          if(tempLinePart[j]!="") 
          { 
           LinePart[j]=tempLinePart[j]; 
          } 
          else{ 
           debugger; 
           console.log("line number is: ",j,"The data is: ",tempLinePart[j]); 
           continue; 
          } 
         } 

       } 
       else 
       { 

        var tempLineSplitPart=lines[i].split(","); 

         for(var j=0;j<tempLineSplitPart.length;j++) 
         { 
          if(tempLineSplitPart[j]!="") 
          { 
           LineSplitPart[j]=tempLineSplitPart[j]; 
          } 
          else{ 
           debugger; 
           console.log("line number is: ",j,"The data is: ",tempLineSplitPart[j]); 
           continue; 
          } 
         } 

       } 

      }//end for loop 
      for(var csvchar=3;csvchar<newLine;csvchar++) 
      { 
       debugger; 

       var proheaders=lines[csvchar].split(","); 

       //If loop for Header part 
       if(proheaders[0]=="Header") 
       { 
        for(var i=0;i<HeaderPart.length;i++) 
        { 

         if(i==0) 
         { 
          var temp="\n<"+proheaders[i]+">\n<"+HeaderPart[i]+">"+proheaders[i]+"</"+HeaderPart[i]+">"; 
          headerfile=headerfile +temp; 
          continue; 
         } 
         else if(i==HeaderPart.length-1) 
         { 
          debugger; 
          var temp="\n<"+HeaderPart[i]+">"+proheaders[i]+"</"+HeaderPart[i]+">\n</"+proheaders[0]+">\n"; 
          headerfile=headerfile +temp; 
          console.log(headerfile); 
          mainfile=mainfile + headerfile; 
          continue; 
         } 
         else 
         { 
          var temp="\n<"+HeaderPart[i]+">"+proheaders[i]+"</"+HeaderPart[i]+">"; 
          headerfile=headerfile +temp; 

         } 


        } 
       }//end of If loop for Header part 

       //If loop for Line part 
       else if(proheaders[0]=="Line") 
       { 
        debugger; 
        for(var i=0;i<LinePart.length;i++) 
        { 

         if(i==0) 
         { 
         debugger; 
          var temp="<"+proheaders[i]+">\n<"+LinePart[i]+">"+proheaders[i]+"</"+LinePart[i]+">"; 
          Linefile=Linefile +temp; 
          continue; 
         } 
         else if(i==LinePart.length-1) 
         { 
         debugger; 
          var temp="\n<"+LinePart[i]+">"+proheaders[i]+"</"+LinePart[i]+">\n</"+proheaders[0]+">\n"; 
          Linefile=Linefile +temp; 
          console.log(Linefile); 
          mainfile=mainfile + Linefile; 
          continue; 
         } 
         else 
         { 
          var temp="\n<"+LinePart[i]+">"+proheaders[i]+"</"+LinePart[i]+">"; 
          Linefile=Linefile +temp; 

         } 


        } 
       } 
       //End of If loop for Line part 

       //If loop for LineSplit part 
       else if(proheaders[0]=="Linesplit") 
       { 
        debugger; 
        for(var i=0;i<LineSplitPart.length;i++) 
        { 

         if(i==0) 
         { 
          debugger; 
          var temp="<"+proheaders[i]+">\n<"+LineSplitPart[i]+">"+proheaders[i]+"</"+LineSplitPart[i]+">"; 
          Linesplitfile=Linesplitfile +temp; 
          continue; 
         } 
         else if(i==LineSplitPart.length-1) 
         { 
          debugger; 
          var temp="\n<"+LineSplitPart[i]+">"+proheaders[i]+"</"+LineSplitPart[i]+">\n</"+proheaders[0]+">\n"; 
          Linesplitfile=Linesplitfile +temp; 
          console.log(Linesplitfile); 
          mainfile=mainfile + Linesplitfile; 
          continue; 
         } 
         else 
         { 
          var temp="\n<"+LineSplitPart[i]+">"+proheaders[i]+"</"+LineSplitPart[i]+">"; 
          Linesplitfile=Linesplitfile +temp; 
         } 


        } 
       } 
       //End of If loop for Line split part 

       /*for(var j=0;j<proheaders.length;j++) 
       { 

        if(proheaders[j]!="") 
        { 

         var temp="\n<"+proheaders[j]+"/>"; 
         mainfile=mainfile +temp; 
         console.log(mainfile); 
        } 
        else{ 
        continue; 
        } 

       }*/ 
      } 
      mainfile=mainfile +endstring; 

      console.log(mainfile); 
       return mainfile; 
     } 

    } 
    readCsv.readAsText(fileCsv); 
} 
else 
{ 
    alert("Failed to load file"); 
} 

}

関連する問題