2011-01-10 2 views
2

xml 웹 서비스에서 마지막 7 일 동안의 데이터를 반환하려하지만 행운이 없습니다. 누군가 제가 이걸 어떻게 성취 할 수 있는지 설명해 주시겠습니까? 다음과 같이 XML은 다음과 같습니다WP7 xml 웹 서비스에서 마지막 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> 

편집

내가 선 그래프를 채우는 데 사용됩니다 검색 할 데이터입니다. 구체적으로 나는 지난 7 일 동안 하루 속성 값과 트래픽 요소 값을 요구합니다. 현재로서는 아래 코드가 있습니다. 첫날은 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

사용중인 웹 서비스와 이에 대한 호출을 지정하십시오. 이 정보가 없으면 문맥이 충분하지 않기 때문에 답변을 제공하는 것은 불가능합니다. –

+0

안녕하세요 Gergely, 내 원래 질문을 업데이트하고 더 이해가 되길 바래 :) 내가 사용하고있는 웹 서비스를 지정하는 방법은 내 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(); 

을 새 컬렉션을 추가하고 트래픽 데이터를 하나씩 추가하십시오.

ObservableCollection<LineGraphItem> Data = new ObservableCollection<LineGraphItem>(); 
foreach (var history in trafficList) 
    Data.Add(new LineGraphItem() { yyyymmdd = history.Day, value = double.Parse(history.Traffic) }); 
관련 문제