打印

[原创] Silverlight读取xml

本主题由 Amanda 于 2008-7-1 16:44 分割

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

[ 本帖最后由 nasawz 于 2008-4-8 11:24 编辑 ]
http://nasa.cnblogs.com

TOP

LZ看来有不少 Silverlight 教程。
走过就是走过了,路还长着呢... ...

TOP

好吧,我承认,这玩意全是代码我没心思看下去.
算了.Ajax的书还没看完呢.哎
Read, Write, Observe, Think, Share - Reborn, Adapt, and Evolve

TOP

好东西,收藏了。

TOP