2013-01-19 15 views
7

私はXMLファイルの解析に慣れていません。私はXMLファイルに折れ線グラフデータを保存しています。 thisの記事によると、XMLファイルを読む方法のうち、DataSetが最速です。かなりの量のデータが存在する可能性があるので、DataSetを使用することは意味があります。ここに私のグラフの文書がどのように見えるかです:XMLファイルをDataSetとして読む

<?xml version="1.0" encoding="utf-8" standalone="yes" ?> 
<BreezyCalc> 
    <Graph Version="3.0" Mode="static"> 
     <Range> 
      <X Min="-20" Max="20" /> 
      <Y Min="-20" Max="20" /> 
     </Range> 
     <Lines> 
      <Line Name="MyLine1" R="0" G="255" B="0"> 
       <Point X="-17" Y="9" /> 
       <Point X="7" Y="-5" /> 
       <Point X="10" Y="4" /> 
       <Point X="-6" Y="2" /> 
      </Line> 
      <Line Name="MyLine2" R="255" G="0" B="0"> 
       <Point X="-7" Y="3" /> 
       <Point X="8" Y="-1" /> 
       <Point X="-4" Y="-4" /> 
       <Point X="-1" Y="6" /> 
      </Line> 
     </Lines> 
    </Graph> 
</BreezyCalc> 

これらの線で多数の点があるかもしれないので、私は迅速かつできるだけ少ないリソースでデータを取得する必要があります。 DataSetより速いアプローチがある場合は、私に教えてください。さもなければ、誰かが私のXMLパーサとしてDataSetを使って私のグラフデータをどのように取得するか教えてもらえますか?

答えて

10

データセットを使用する場合は、非常に簡単です。

// Here your xml file 
string xmlFile = "Data.xml"; 

DataSet dataSet = new DataSet(); 
dataSet.ReadXml(xmlFile, XmlReadMode.InferSchema); 

// Then display informations to test 
foreach (DataTable table in dataSet.Tables) 
{ 
    Console.WriteLine(table); 
    for (int i = 0; i < table.Columns.Count; ++i) 
     Console.Write("\t" + table.Columns[i].ColumnName.Substring(0, Math.Min(6, table.Columns[i].ColumnName.Length))); 
    Console.WriteLine(); 
    foreach (var row in table.AsEnumerable()) 
    { 
     for (int i = 0; i < table.Columns.Count; ++i) 
     { 
      Console.Write("\t" + row[i]); 
     } 
     Console.WriteLine(); 
    } 
} 

もっと速くしたい場合は、行の後に行を読み込むXmlReaderを試すことができます。しかし、開発するのは少し難しいです。 ここで見ることができます:http://msdn.microsoft.com/library/cc189056(v=vs.95).aspx

+0

InferSchemaはちょうど空の行をインポートしてしまったの前に私を助けました – user2648008

4

他の単純な方法は、 "ReadXml" inbuiltメソッドを使用しています。

string filePath = "D:\\Self Practice\\Sol1\\Sol1\\Information.xml"; 
DataSet ds = new DataSet(); 
ds.ReadXml(filePath); 

注:XMLファイルは整然とした方法である必要があります。

Reference

関連する問題