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 { getset; }
        
public string title { getset; }
        
public string category { getset; }
        
public int hit { getset; }
        
public DateTime createdate { getset; }
        
public string converpic { getset; }
        
public bool iscommend { getset; }
        
public int votenum { getset; }
        
public int score { getset; }
        
//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;
        }

读取完毕.  ;)

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

作者:nasa
出处:http://nasa.cnblogs.com
联系:nasa_wz@hotmail.com
QQ:12446006
posted @ 2008-04-08 11:02  王喆(nasa)  阅读(6829)  评论(14编辑  收藏  举报