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:

XMl解析的几种方式

XMl解析的几种方式
  • hoho_12
  • hoho_12
  • 2016年11月01日 17:15
  • 295

读取XML文件动态绑定TreeView控件练习题

题目三:读取XML文件动态绑定TreeView控件 一、语言和环境 A、实现语言  C# B、环境要求  Visual Studio 2012 二、功能要求 现使用....
  • baidu_36074048
  • baidu_36074048
  • 2017年03月12日 16:18
  • 956

java读取XML文件的四种方式及比较

data A1234 四川省XX县XX镇XX路X段XX号 B1234 四川省XX市XX乡XX村XX组
  • so_sss
  • so_sss
  • 2014年11月08日 16:47
  • 4631

Js绑定事件的几种方式

1.直接在标签中绑定 直接在标签里绑定事件
  • u013987661
  • u013987661
  • 2016年09月18日 10:39
  • 1183

Unity3D读取XML文档信息

C#中可以用XmlDocument类操作Xml文件 例如要读取如下Xml文件 1 root> 2 person name="WangYao"> 3 age>25age> 4...
  • ycl295644
  • ycl295644
  • 2015年06月26日 16:11
  • 1314

XML文件,过滤一下特殊字符的方法

private static TextReader EscapeXmlText(ref string obStr) { string tmp = ""; ...
  • WDYDXF
  • WDYDXF
  • 2012年01月06日 18:34
  • 2132

java读取xml文件的四种方法

Xml代码  xml version="1.0" encoding="GB2312"?>   RESULT>    VALUE>        NO>A1234NO>   ...
  • u010854543
  • u010854543
  • 2013年11月17日 21:34
  • 11536

android从assets文件夹中读取xml文件

Context.getAssets().openXmlResourceParser(fileNameString) 出现FileNotFoundException,认为assets文件夹的文件须用op...
  • brandon2015
  • brandon2015
  • 2015年12月09日 22:23
  • 2642

C# 读取xml文件忽略xml文件的注释

默认情况下,读取xml文件是不忽略注释的,这样读取带注释的节点会造成异常,那么怎么屏蔽掉这些注释呢? 方案如下: XmlDocument doc = new XmlDocument(); XmlRea...
  • xunzaosiyecao
  • xunzaosiyecao
  • 2014年12月31日 20:59
  • 3188

PHP 读取xml文件的 几种方法

xml源文件 张映 男 28 tank 男 28 1)DOMDocument读取xml $doc = new DOMDocument...
  • tangjunbin10
  • tangjunbin10
  • 2012年04月06日 09:40
  • 3719
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:WP7中关于XML文件的读取,过滤,绑定的几种方法
举报原因:
原因补充:

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