Windows Phone 7 开发探索笔记7——加载XML文件

    本文介绍一下如何在Silverlight for Windows Phone中读取XML文件。

一.准备XML文件

    首先我们来准备一个待读取的XML文件,可以在Visual Studio中创建也可以添加一个已有的,我选择添加已有项,如下图:

clip_image001

如果要新创建,选择New Item即可。注意:添加XML文件后需要将文件属性中的Build Action改为Resource,如下图:

clip_image002

下面是XML文件中的内容,很简单:

ExpandedBlockStart.gif 代码
<? xml version="1.0" encoding="utf-8"  ?>
< Carmakers >
  
< CarBrand  Name ="Aston Martin" />
  
< CarBrand  Name ="Bentley" />
  
< CarBrand  Name ="Bugatti" />
  
< CarBrand  Name ="Ferrari" />
  
< CarBrand  Name ="Jaguar" />
  
< CarBrand  Name ="Lamborghini" />
  
< CarBrand  Name ="Maserati" />
  
< CarBrand  Name ="Maybach" />
  
< CarBrand  Name ="Porsche" />
  
< CarBrand  Name ="Rolls-Royce" />
</ Carmakers >

二.加载并读取XML文件

上篇文章中我们提到了Application类,下面就要通过这个类中的GetResourceStream方法来将XML文件中的内容加载到一个StreamResourceInfo对象中,代码如下:

ExpandedBlockStart.gif 代码
public   partial   class  MainPage : PhoneApplicationPage
    {
        XElement carMakers;

        
//  Constructor
         public  MainPage()
        {
            InitializeComponent();

            StreamResourceInfo xml 
=  Application.GetResourceStream( new  Uri( " /WindowsPhoneLoadingXMLFileDemo;component/Carmakers.xml " , System.UriKind.Relative));

            carMakers 
=  XElement.Load(xml.Stream);

            
this .ManipulationStarted  +=   new  EventHandler < ManipulationStartedEventArgs > (MainPage_ManipulationStarted);
        }

        
void  MainPage_ManipulationStarted( object  sender, ManipulationStartedEventArgs e)
        {
            var carNames 
=  from car
                           
in  carMakers.Elements( " CarBrand " )
                           select car.Attribute(
" Name " ).Value;
            lbxCarmakers.ItemsSource 
=  carNames;
        }
    }

要注意Uri类中的路径”/WindowsPhoneLoadingXMLFileDemo;component/Carmakers.xml “。我使用Linq To XML(需要在项目中添加System.Xml.Linq程序集的引用并在代码中添加using System.Xml.Linq;语句)来读取XML中的节点信息,首先通过XElement.Load方法加载整个流,然后在整个页面的ManipulationStarted事件处理程序中将所有的CarBrand信息读出来,赋给一个Listbox的ItemsSource属性,这样就可以将XML中的数据呈现出来了。

另外,对于XML文件来说,也可以直接通过

XElement.Load("/WindowsPhoneLoadingXMLFileDemo;component/Carmakers.xml");

来获取到一个XElement。下面是程序截图:

clip_image003

三.下载示例代码:

WindowsPhoneLoadingXMLFileDemo.zip

如果大家喜欢我的文章,请点击“推荐”,谢谢!

转载于:https://www.cnblogs.com/porscheyin/archive/2010/12/08/1900432.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值