Windows Phone读取XML的配置文件

移动开发
本文讲述了Windows Phone读取XML的配置文件。在一个WP7的项目中,需要读取一个配置文件,这个配置文件无需改动,直接读取就可以。

在一个WP7的项目中,需要读取一个配置文件,这个配置文件无需改动,直接读取就可以。可以用以下的方式来实现读取:

在项目中添加AllLevels.xml文件,格式如下:

BuildAction设置为Content,然后在代码中读取:

  1. XDocument xdoc = XDocument.Load("AllLevels.xml"); 
  2. listLevels = new List(); 
  3. foreach (XElement element in xdoc.Element("Levels").Descendants("Level"))  
  4. Level level = new Level(); 
  5. level.LevelID = int.Parse(element.Element("LevelID").Value); 
  6. level.Content = element.Element("Content").Value; 
  7. level.Difficulty = int.Parse(element.Element("Difficulty").Value); 
  8. //level.Difficulty = 0; 
  9. level.LevelName = element.Element("LevelName").Value;  
  10. level.MinSteps = int.Parse(element.Element("MinSteps").Value); 
  11. evel.rcnt = int.Parse(element.Element("rcnt").Value); 
  12. level.UserID = int.Parse(element.Element("UserID").Value); 
  13. level.UserName = element.Element("UserName").Value; 
  14. listLevels.Add(level);  
  15. }  

这样生成xap后,用winrar解压缩就可以看到这个AllLevels.xml文件,有时候这样不太安全,可以将其编译到dll中。将 BuildAction设置成Resource就可以将文件编译到dll里了,初学WP7的话很容易遇到图片无法显示的问题,就是因为图片一般要设置成 Content,而不是Resource。

设置成Resource以后就不能直接这样了

1. XDocument.Load("AllLevels.xml");

可以写完整的Uri路径,或者读取Stream,用以下的方法:(这两种都可以)

  1. //设置成Resource属性时 用Load方法读取Stream 
  2. //Stream stream = App.GetResourceStream(new Uri("HRD;component/AllLevels.xml", UriKind.Relative)).Stream; 
  3. //XDocument xdoc = XDocument.Load(stream); 
  4. //设置成Resource属性时 用Load方法读取uri 
  5. Uri uri = new Uri("/HRD;component/AllLevels.xml", UriKind.Relative); 
  6. XDocument xdoc = XDocument.Load(uri.ToString());  

这样编译出来的xap中就看不到这个xml文件了,已经被编译到dll里了。

除了用 1. XElement element in xdoc.Element("Levels").Descendants("Level")

这样的读取方式外,还可以直接用xml序列化的方式:比如:

  1. //另一种读取方法 
  2. Uri uri = new Uri("MyResource/MyPeople.xml", UriKind.Relative); 
  3. StreamResourceInfo sri = Application.GetResourceStream(uri); 
  4. if (sri != null
  5. XmlSerializer serializer = new XmlSerializer(typeof(List));  
  6. List data = (List)serializer.Deserialize(sri.Stream); 
  7. this.listBox.ItemsSource = data; 

参考以下文章:

http://bbs.wpdever.com/thread-3161-1-1.html

责任编辑:闫佳明 来源: wpdever
相关推荐

2009-02-01 14:07:01

J2EEXMLXML配置文件

2010-08-03 09:20:33

Flex读取XML配置

2013-07-30 12:30:57

Windows PhoWindows Pho

2009-09-29 15:52:26

Hibernate X

2009-08-13 09:16:57

C#读取配置文件

2009-08-13 09:58:55

C#读取配置文件

2023-08-07 16:14:32

propertiesSpring框架

2010-08-02 16:58:08

Flex配置文件

2009-06-04 08:34:24

Struts2配置struts.xml

2011-08-12 09:38:48

2011-06-14 16:07:13

Qt QSettings类

2022-08-17 07:06:14

SpringBoot配置@Value

2022-09-15 16:48:30

MySQL数据库测试

2013-06-17 17:02:15

Windows PhoWP开发资源文件

2019-02-21 14:10:34

Tomcat服务器Server.xml

2019-11-22 10:00:53

ICC配置文件Windows 10

2011-08-29 16:48:50

Lua配置文件C++

2009-07-10 10:37:11

WINAPI

2009-06-11 17:39:55

xmljava

2011-02-25 16:39:34

proftpd配置文件
点赞
收藏

51CTO技术栈公众号