首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WP7从xml web服务返回最后7天的数据。

WP7从xml web服务返回最后7天的数据。
EN

Stack Overflow用户
提问于 2011-01-10 03:17:02
回答 1查看 624关注 0票数 2

我试图从xml服务返回最后7天的数据,但没有运气。有人能解释一下我是怎么做到的吗?XML如下:

代码语言:javascript
复制
<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次。

代码语言:javascript
复制
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;
        }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-01-10 22:50:03

这将为您提供一个列表,其中包含具有DateTraffic属性的元素,这些属性来自于您的XML过去7天:

代码语言:javascript
复制
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();

现在您已经拥有了数据,您可以创建一个新的集合并一个一个地添加流量数据:

代码语言:javascript
复制
ObservableCollection<LineGraphItem> Data = new ObservableCollection<LineGraphItem>();
foreach (var history in trafficList)
    Data.Add(new LineGraphItem() { yyyymmdd = history.Day, value = double.Parse(history.Traffic) });
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4643414

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档