2011-01-10 9 views
2

xml Webサービスから最後の7日間のデータを返すことを試みていますが、運がありません。誰かが私がこれをどのように達成するか説明してもらえますか?次のようにXMLは次のとおりです。WP7 xml Webサービスから最後の7日間のデータを返します

<node> 
    <api> 
     <usagelist> 
      <usage day="2011-01-01"> 
       <traffic name="total" unit="bytes">23579797</traffic> 
      </usage> 
      <usage day="2011-01-02"> 
       <traffic name="total" unit="bytes">23579797</traffic> 
      </usage> 
      <usage day="2011-01-03"> 
       <traffic name="total" unit="bytes">23579797</traffic> 
      </usage> 
      <usage day="2011-01-04"> 
       <traffic name="total" unit="bytes">23579797</traffic> 
      </usage> 
     </usagelist> 
    </api> 
</node> 

EDIT

私が取得するデータは、折れ線グラフを移入するために使用されます。具体的には、過去7日間のday属性値とtraffic要素値が必要です。現時点では、以下のコードがあります。最初の日は7回、初回のトラフィックは7回のみ表示されます。

XDocument xDocument = XDocument.Parse(e.Result); 

     var values = from query in xDocument.Descendants("usagelist") 
        select new History 
        { 
         day = query.Element("usage").Attribute("day").Value, 
         traffic = query.Element("usage").Element("traffic").Value 
        }; 

     foreach (History history in values) 
     { 
      ObservableCollection<LineGraphItem> Data = new ObservableCollection<LineGraphItem>() 
      { 
       new LineGraphItem() { yyyymmdd = history.day, value = double.Parse(history.traffic) }, 
       new LineGraphItem() { yyyymmdd = history.day, value = double.Parse(history.traffic) }, 
       new LineGraphItem() { yyyymmdd = history.day, value = double.Parse(history.traffic) }, 
       new LineGraphItem() { yyyymmdd = history.day, value = double.Parse(history.traffic) }, 
       new LineGraphItem() { yyyymmdd = history.day, value = double.Parse(history.traffic) }, 
       new LineGraphItem() { yyyymmdd = history.day, value = double.Parse(history.traffic) }, 
       new LineGraphItem() { yyyymmdd = history.day, value = double.Parse(history.traffic) }, 
      }; 

      lineGraph1.DataSource = Data; 
     } 
+1

どのWebサービスを使用しているのか、どのような呼び出しを行っているのかを明記してください。この情報がなければ、明らかに十分な文脈がないので、答えを出すことは不可能です。 –

+0

こんにちはGergely、私は私の元の質問を更新し、それは今より意味があることを願って:)私は何を使用しているWebサービスを指定すると、それは私のISPのため、 – cvandal

答えて

2

これはあなたのXMLに基づいて、最後の7日からのものDateTraffic性質を持つ要素を含むリスト与える:今、あなたはデータを持っていることをあなたが作成することができます

var trafficList = xmlDoc.Descendants("usage") 
         .Where(d => (DateTime.Now.Date - DateTime.Parse(d.Attribute("day").Value).Date) <= TimeSpan.FromDays(7)) 
         .Select(d => new 
           { Day = d.Attribute("day").Value, 
            Traffic = d.Descendants("traffic").First().Value 
           }) 
         .ToList(); 

を新しいコレクションを作成し、トラフィックデータを1つずつ追加してください:

ObservableCollection<LineGraphItem> Data = new ObservableCollection<LineGraphItem>(); 
foreach (var history in trafficList) 
    Data.Add(new LineGraphItem() { yyyymmdd = history.Day, value = double.Parse(history.Traffic) }); 
関連する問題