Silverlight读取xml

这例子是为我的试验项目"SLShowCase"做的读取xml的试验.看到园子里的朋友做到 仿163幻灯片的demo就提前发上来了.
项目的功能是做案例展示.
ok  首先,先定义xml.
projects.xml
<? xml version="1.0" encoding="utf-8"  ?>
< projects >
  
< project  id ="1"  title ="nasa.wang @ cnblogs"  category ="web"  hit ="23"  createdate ="2008-4-9"  converpic ="null"  iscommend ="true"  votenum ="8"  score ="10" >
  
</ project >
</ projects >
在sl中定义类.
     public   class  project
    {
        
public   int  id {  get set ; }
        
public   string  title {  get set ; }
        
public   string  category {  get set ; }
        
public   int  hit {  get set ; }
        
public  DateTime createdate {  get set ; }
        
public   string  converpic {  get set ; }
        
public   bool  iscommend {  get set ; }
        
public   int  votenum {  get set ; }
        
public   int  score {  get set ; }
        
// public IList<pitem> pitems { get; set; }
        
// public IList<pcomment> pcomments { get; set; }
    }
使用WebClient来加载数据.linq来格式化数据.
         public  Page()
        {
            InitializeComponent();
            WebClient client 
=   new  WebClient();
            client.DownloadStringAsync(
new  Uri(HtmlPage.Document.DocumentUri,  " projects.xml " ));
            client.DownloadStringCompleted 
+=   new  DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
        }

        
void  client_DownloadStringCompleted( object  sender, DownloadStringCompletedEventArgs e)
        {
            XmlReader reader 
=  XmlReader.Create( new  StringReader(e.Result));
            XDocument document 
=  XDocument.Load(reader);
            var projects 
=  from f  in  document.Descendants( " project " )
                           select 
new  project
                           {
                               id 
=   int .Parse(f.Attribute( " id " ).Value),
                               title 
=  f.Attribute( " title " ).Value,
                               category 
=  f.Attribute( " category " ).Value,
                               hit 
=   int .Parse(f.Attribute( " hit " ).Value),
                               createdate 
=  DateTime.Parse(f.Attribute( " createdate " ).Value),
                               converpic 
=  f.Attribute( " converpic " ).Value,
                               iscommend 
=   bool .Parse(f.Attribute( " iscommend " ).Value),
                               votenum 
=   int .Parse(f.Attribute( " votenum " ).Value),
                               score 
=   int .Parse(f.Attribute( " score " ).Value),
                           };
            List
< project >  _projects  =   new  List < project > ();
            _projects.AddRange(projects);
            txtStatus.Text 
= " read success for  "   +  _projects[ 0 ].title;
        }

读取完毕.  ;)

代码下载: http://files.cnblogs.com/nasa/silverlight/readxmlfile.zip

作者:nasa
出处:http://nasa.cnblogs.com
联系:[email protected]
QQ:12446006

你可能感兴趣的:(silverlight)