这例子是为我的试验项目"SLShowCase"做的读取xml的试验.看到园子里的朋友做到
仿163幻灯片的demo就提前发上来了.
项目的功能是做案例展示.
ok 首先,先定义xml.
projects.xml
读取完毕. ;)
代码下载: http://files.cnblogs.com/nasa/silverlight/readxmlfile.zip
作者:nasa
出处:http://nasa.cnblogs.com
联系:nasa_wz@hotmail.com
QQ:12446006
项目的功能是做案例展示.
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中定义类.
< 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 >
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 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; }
}
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;
}
{
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://files.cnblogs.com/nasa/silverlight/readxmlfile.zip
作者:nasa
出处:http://nasa.cnblogs.com
联系:nasa_wz@hotmail.com
QQ:12446006