打印

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://www.cnblogs.com/Files/nasa/silverlight/readxmlfile.zip
玩闹的时间过去了。

blog:http://nasa.cnblogs.com
msn:nasa_wz@hotmail.com
QQ:12446006

TOP