Silverlight读取xml

本文介绍了一个使用Silverlight进行XML文件解析的示例项目,通过WebClient加载XML数据,并利用LINQ对数据进行格式化处理,实现了案例展示的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文示例源代码或素材下载

  这例子是为我的试验项目"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;
    }

  读取完毕. ;)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值