私のプロジェクトでは、入力 XML ファイルを DataTable に変換する機能が必要です。そのために次のコードを使用しています。
DataSet ds = new DataSet();
ds.Locale = CultureInfo.InvariantCulture;
dataSourceFileStream.Seek(0, SeekOrigin.Begin);
ds.ReadXml(dataSourceFileStream);
dt = ds.Tables[0];
これは、入力 XML に重複する要素が含まれていない限り (たとえば、XML ファイルが次のようになっている場合)、静かに機能します。
<?xml version="1.0" encoding="iso-8859-1"?>
<DocumentElement>
<data>
<DATE>27 September 2013</DATE>
<SCHEME>Test Scheme Name</SCHEME>
<NAME>Mr John</NAME>
<SCHEME>Test Scheme Name</SCHEME>
<TYPE>1</TYPE>
</data>
</DocumentElement>
上記のように、要素SCHEMEが 2 回表示されます。この種の XML ファイルが来るds.ReadXml(dataSourceFileStream);
と、正しいデータ テーブルが返されません。
これを処理するより良い方法はありますか?