• 締切済み

XMLファイルをDataSetに読込むには(C#)

現在、C#(VS2005)とXMLを勉強しています。 以下のXML (EMP:社員 EMP_CODE:社員コード、所属コード、社員コード)から、 <ROOT> <EMP> <EMP_CODE>A0325991</EMP_CODE> <EMP_KBN>92</EMP_KBN> <FROM_DATE>2004-11-22</FROM_DATE> <TO_DATE>2007-3-30</TO_DATE> </EMP> <EMP> <EMP_CODE>00491501</EMP_CODE> <EMP_KBN>11</EMP_KBN> <FROM_DATE>1998-04-08</FROM_DATE> <TO_DATE></TO_DATE> </EMP> </ROOT> EMP:社員 EMP_CODE:社員番号 EMP_KBN:雇用形態 FROM_DATE:雇用/契約開始日 TO_DATE:退職/契約解除日 C#側で定義済みのDataSet(カラムまで定義)に格納したいのですが、 XMLの項目数よりDataSet側の項目数が多いため個別にXMLから読込む 方法についてお教え願いますでしょうか。 宜しくお願い致します。

みんなの回答

  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

その型指定済みのDataSetの列名(Columns[n].ColumnName)とXMLのノード名は同じなのでしょうか? 新規に追加すのであれば ... DataSet dsXML = new DataSet(); dsXml.ReadXml("Sample.XML"); DataTable tbl = dsXml.Tables[0]; // 型指定済みDataSetの型名を DSEMPと仮定 EMPDS ds = new EMPDS(); // 読み込んだXMLの行数分ループ foreach( DataRow row2 in tbl.Rows ) {   DataRow row = ds.Tables[0].NewRow();   // dsXMLのテーブルの列数分のループしてデータの流し込み   foreach( DataColumn cl in Tbl.Columns )   {     // 空フィールドは代入しない     if ( !row2[ cl.ColumnName ].Equals("") )     {       row[ cl.ColumnName ] = row2[ cl.ColumnName ];     }   }   ds.Tables[0].Rows.add( row ); } といった具合でしょう ...

関連するQ&A