Silverlight的应用方法非常广泛。我们可以利用这样的一款多媒体处理工具实现许多功能需求。在这里我们就为大家详细介绍一下有关Silverlight读取XML的相关操作技巧。希望对又需要的朋友有些帮助。#t#
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, DownloadString
CompletedEventArgs 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;- }
Silverlight读取XML完毕. ;)