12

XMLファイルの解析に不慣れで、折れ線グラフのデータをxmlファイルに保存しているので、少し調べました。この記事によると、XMLファイルを読み取るすべての方法の中DataSetで、最速です。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私に教えてください。DataSetそれ以外の場合、 XMLパーサーとしてを使用してグラフデータを取得する方法を誰かに教えてもらえますか?

4

2 に答える 2

21

DataSetを使用する場合は、非常に簡単です。

// 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

于 2013-01-19T11:26:20.903 に答える
6

他の簡単な方法は、「ReadXml」組み込みメソッドを使用することです。

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

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

参照

于 2015-06-29T11:06:45.337 に答える