Silverlight读取xml2011-09-23 cnblogs nasa这例子是为我的试验项目"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.bianceng.net/dotnet/201212/685.htm