XML文書からデータを抽出し、C#で時間に基づいてデータをロールアップしようとしています。例えばC#でXML文書からデータを抽出してロールアップする
- 私は、次のXML文書を持っている:
文献1:
"<HourlyTotals>" +
"<Data>" +
"<Time>08:00</Time>" +
"<NetSales>200.25</NetSales>" +
"<NetReturns>15.25</NetReturns>" +
"<NetIncome>185.00</NetIncome>" +
"<CustomerCount>15</CustomerCount>" +
"<PercentOfIncome>3</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>08:15</Time>" +
"<NetSales>100.25</NetSales>" +
"<NetReturns>15.25</NetReturns>" +
"<NetIncome>85.00</NetIncome>" +
"<CustomerCount>2</CustomerCount>" +
"<PercentOfIncome>1.5</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>08:30</Time>" +
"<NetSales>100.25</NetSales>" +
"<NetReturns>15.25</NetReturns>" +
"<NetIncome>85.00</NetIncome>" +
"<CustomerCount>2</CustomerCount>" +
"<PercentOfIncome>1.5</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>10:00</Time>" +
"<NetSales>100.25</NetSales>" +
"<NetReturns>10.25</NetReturns>" +
"<NetIncome>176.00</NetIncome>" +
"<CustomerCount>10</CustomerCount>" +
"<PercentOfIncome>1</PercentOfIncome>" +
"</Data>" +
"</HourlyTotals>"
を引用符と「+」を無視してください:それはので、私は偽物を作成しようとしていたという事実ですXMLデータを取得し、C#のリストに文字列として渡します。
文献2:
"<HourlyTotals>" +
"<Data>" +
"<Time>08:00</Time>" +
"<NetSales>100.25</NetSales>" +
"<NetReturns>10.25</NetReturns>" +
"<NetIncome>176.00</NetIncome>" +
"<CustomerCount>10</CustomerCount>" +
"<PercentOfIncome>1</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>08:15</Time>" +
"<NetSales>120.00</NetSales>" +
"<NetReturns>11.00</NetReturns>" +
"<NetIncome>54.00</NetIncome>" +
"<CustomerCount>5</CustomerCount>" +
"<PercentOfIncome>2.3</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>08:30</Time>" +
"<NetSales>160.11</NetSales>" +
"<NetReturns>17.25</NetReturns>" +
"<NetIncome>34.00</NetIncome>" +
"<CustomerCount>4</CustomerCount>" +
"<PercentOfIncome>3.2</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>09:15</Time>" +
"<NetSales>100.25</NetSales>" +
"<NetReturns>10.25</NetReturns>" +
"<NetIncome>176.00</NetIncome>" +
"<CustomerCount>10</CustomerCount>" +
"<PercentOfIncome>1</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>10:00</Time>" +
"<NetSales>100.25</NetSales>" +
"<NetReturns>10.25</NetReturns>" +
"<NetIncome>176.00</NetIncome>" +
"<CustomerCount>10</CustomerCount>" +
"<PercentOfIncome>1</PercentOfIncome>" +
"</Data>" +
"</HourlyTotals>"
文献3:
私はロールアップしNetSales、NetReturns、NetIncome、CustomerCountとPercentOfIncome値を時間によってたい "<HourlyTotals>" +
"<Data>" +
"<Time>08:00</Time>" +
"<NetSales>22.25</NetSales>" +
"<NetReturns>21.25</NetReturns>" +
"<NetIncome>122.00</NetIncome>" +
"<CustomerCount>3</CustomerCount>" +
"<PercentOfIncome>6</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>08:15</Time>" +
"<NetSales>174.00</NetSales>" +
"<NetReturns>16.00</NetReturns>" +
"<NetIncome>68.00</NetIncome>" +
"<CustomerCount>2</CustomerCount>" +
"<PercentOfIncome>0.2</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>08:30</Time>" +
"<NetSales>99.00</NetSales>" +
"<NetReturns>88.00</NetReturns>" +
"<NetIncome>69.00</NetIncome>" +
"<CustomerCount>6</CustomerCount>" +
"<PercentOfIncome>9</PercentOfIncome>" +
"</Data>" +
"<Data>" +
"<Time>09:30</Time>" +
"<NetSales>100.25</NetSales>" +
"<NetReturns>10.25</NetReturns>" +
"<NetIncome>176.00</NetIncome>" +
"<CustomerCount>10</CustomerCount>" +
"<PercentOfIncome>1</PercentOfIncome>" +
"</Data>" +
"</HourlyTotals>"
。例えば、時刻8時が 322.75(200.25 + 100.25 + 22.25)NetSales値としてなどの値を有していなければならない..
タイムノード値は、午前8時から午後11時45分の範囲であることができます。私はすべての時間間隔を抽出し、それらに基づいて値をロールアップする効率的な方法を見つけようとしています。
これまでのところ、私はXMLから個々のノードのデータを抽出するためのコードを書かれている:
foreach (var selector in fakeXML)
{
XDocument doc = XDocument.Parse(selector);
var data = doc.Descendants("Data");
var result1 = from q in data
select new
{
Time = q.Element("Time").Value,
NetSales = q.Element("NetSales").Value,
NetReturns = q.Element("NetReturns").Value,
NetIncome = q.Element("NetIncome").Value,
CustCount = q.Element("CustomerCount").Value,
PercentOfIncome = q.Element("PercentOfIncome").Value
}
}
fakeXMLは、文字列として、個々のXML文書が含まれている文字列のリストです。
このコードでは、XMLドキュメントから個々のノードを抽出することができます。
タイムノードの値に基づいてロールアップする効果的な方法を理解できません。どのように進行するかについてのリードは本当に素晴らしいでしょう!
ありがとうございます。
すべてのデータを取得した後。各グループの時間と各値の合計でグループ化します。 – Nkosi