WP7中关于XML文件的读取,过滤,绑定的几种方法

转载 2012年03月23日 10:32:48

我们在做第三方应用开发时经常会用到Linq来定向的解析查询所得到的XML文件,本文是自己在做WP7第三方新浪微博客户端,人人网客户端时所采用的几种方法,希望对大家有所帮助,废话少说,上正文。
首先看以下两个XML文件:
Students.xml
StudentInfo.xml
下面创建一个Model类,来对数据进行存取。
?
public class Model
   {
       string headurl="";
       string nameurl="";
       int age;
 
       public string HeadUrl { get; set; }
       public string Name { get; set; }
       public int Age { get; set; }
   }
这是前台代码,主要是控件的摆放和绑定操作:
为了读取XML文件中的信息,我们需要添加一个.Net库支持 System.Xml.Linq.我们会使用到里面的XDocument相关类的操作。
接下来我们进行查询及绑定,直接看代码吧:
?
XDocument xdoc = XDocument.Load("Students.xml");
           var student = from query in xdoc.Descendants("user")
                         select new Model
                         {
                             HeadUrl = (string)query.Element("headurl"),
                             Name = (string)query.Element("name"),
                             Age=(int)query.Element("age")
                         };
           this.listBox1.ItemsSource = student;
效果如下图:
要进行数据的过滤操作,需要对各个元素的属性值进行判断,我们使用下面那个StudentsInfo文件进行判断,当然用Students也可以,这里就不多说了。继续看代码:
?
XDocument xdoc1 = XDocument.Load("StudentsInfo.xml");
            var student1 = from query in xdoc1.Descendants("user")
                           where query.Attribute("age").Value == "20"
                          select new Model
                          {
                              HeadUrl = query.Attribute("headurl").Value,
                              Name = query.Attribute("name").Value,
                              Age =int.Parse(query.Attribute("age").Value)
                          };
            this.listBox2.ItemsSource = student1;
为了醒目我将上面两个例子放在一起显示,如图:
下面是一个按某个元素来进行排序的例子,我们就按年龄来对刚才的数据进行一个升序排列:
?
XDocument xdoc1 = XDocument.Load("StudentsInfo.xml");
            var student1 = from query in xdoc1.Descendants("user")
                           orderby int.Parse(query.Attribute("age").Value) ascending
                          select new Model
                          {
                              HeadUrl = query.Attribute("headurl").Value,
                              Name = query.Attribute("name").Value,
                              Age =int.Parse(query.Attribute("age").Value)
                          };
            this.listBox2.ItemsSource = student1;
注意:按降序排列的话就把ascending改成descending可以了,默认是按升序排列的。
看图:
下面再介绍另一种查找方法,感觉也非常实用:
?
public ObservableCollection<Model> studentCollection { get; private set; }
 
XDocument xdoc2 = XDocument.Load("Students.xml");
           studentCollection = new ObservableCollection<Model>();
           foreach (XElement element in xdoc2.Element("Student").Descendants("user"))
           {
               studentCollection.Add(new Model()
                {
                    HeadUrl = element.Element("headurl").Value,
                    Name = element.Element("name").Value,
                    Age =Int32.Parse(element.Element("age").Value)
                });
           }
           this.listBox1.ItemsSource = studentCollection;
效果如下:
要进行数据的筛选等操作只需要在foreach里面进行判断就可以了,也是很方便的。而且使用了ObservableCollection这个集合,操作起来也会十分方便。
先介绍这些吧,以后有空再进行深入介绍。
下面是示例的Demo:

相关文章推荐

WP7的XML操作详解:读取,过滤以及数据绑定

在这个小教程,我将演示在Windows Phone 7如何让ListBox的数据绑定XML数据。我将使用LINQ to XML,以便加载和读取数据,而且我将展示如何实现一个基本的过滤。 首先让我...

WP7 XML操作详解:读取,过滤以及数据绑定

在这个小教程,我将演示在Windows Phone 7如何让ListBox的数据绑定XML数据。我将使用LINQ to XML,以便加载和读取数据,而且我将展示如何实现一个基本的过滤。首先让我们先创建...

WP7编程 读取外部XML文件中存放的记录

WP7编程  读取外部XML文件中存放的记录 Kagula 2011/8/9 内容简介 我准备写个简单的WP7程序,需要读取我在项目外部设置的XML文件中的记录集,作为Silverlight初学者,途...

WP7 Isolated Storage 系列 - 5.使用XmlSerializer读取和存储XML文件

这是第五篇关于系列短文章“WP7 Isolated Storage系列”,专注于真实实用,并且有源代码的例子,而不是存粹理论。接下来我将要讨论关于如何从Isolated Storage中读取数据和保存...

WP7容器内动态嵌套自定义容器类并绑定响应函数的方法

重构代码中。。。。。 过去是把所有的控件添加到一个透明图片上,再合并到另一张照片中,好费劲啊,而且不能操作具体的可视元素,那水印是固定的,自己用的都想吐槽。。 大致就是需要在原来的容器类上添加一组...

在wp7中读取XML的配置文件,Content与Resource的区别

在一个WP7的项目中,需要读取一个配置文件,这个配置文件无需改动,直接读取就可以。可以用以下的方式来实现读取: 在项目中添加Levels.xml文件,格式如下: 48 走投无路...

WP7 读取本地资源文件如xml

在开发过程中我们经常需要用到很多资源文件,比如城市名字和拼音对应列表等等。 这类文件为什么要作为本地资源文件用呢?一般是因为: 1、我们不喜欢把这些资源硬编码到代码里,比如一个城市...

wp7数据绑定

数据绑定提供了一种数据呈现与交互的简捷方式,使得数据与UI分离,并能自动更新、同步。 绑定有绑定目标、绑定源、绑定模式、转换器等要素。。 绑定目标为Silverlight控件,可以是Framewo...

WP7 使用数据模板DataTemplate进行数据绑定

一、DataTemplate DataTemplate 类  描述数据对象的可视结构。 命名空间:  System.Windows  XAML     templateContent...

<WP7>(五)手把手教你写天气预报程序:ApplicationBar的使用和ListPicker的数据绑定

这一节,我们要做的是把设置界面写好。不好以为那么容易,因为涉及到ListPicker的数据绑定,而且数据是从数据库里面查询获取的,所以并不是拖连个控件就可以完成的事,不过,拖控件不是件好事,要尽量避免...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WP7中关于XML文件的读取,过滤,绑定的几种方法
举报原因:
原因补充:

(最多只允许输入30个字)