本文讲的是一个网上流行的flash图片新闻播放器的数据的动态更新,这个播放器的名字叫bcastr,感觉是一个非常不错的播放器,应用很广,它的数据绑定也有好几种方式,此处只讲如何通过程序在图片新闻添加时动态更新播放器的内容,本文主要讲通过程序更新它的XML文件来达到自动更新
效果如图:
当我们在后台添加一条图片新闻的时候,我们要让此播放器的第一条显示为我们刚添加的最新的那条图片新闻,并且播放器显示的图片新闻的总数保持不变 ,此处为5条
我们将此播放器的数据设置方式设置为XML文件绑定形式,这样我们就可以通过更新XML的数据来达到目的
本播放器的XML文件格式如下:
<?
xml version="1.0" encoding="utf-8"
?>
< bcaster >
< item id ="13" item_url ="PicNews/img/255121556.JPG" link ="Html/News20079120045.html" itemtitle ="上海整治群租调查:外来低收入者住宿困难" />
< item id ="12" item_url ="PicNews/img/25320354.JPG" link ="Html/News20079100044.html" itemtitle ="50米长吊臂深夜砸向长沙八一桥 无人伤亡" />
< item id ="11" item_url ="PicNews/img/245195911.jpg" link ="Html/News2007920042.html" itemtitle ="“龙凤胎”大熊猫被日本企业认养" />
< item id ="10" item_url ="PicNews/img/245193344.jpg" link ="Html/News2007920041.html" itemtitle ="首页图片新闻测试" />
< item id ="9" item_url ="images/picnews_04.gif" link ="http://blog.csdn.net/j_jake" itemtitle ="j_jake专栏" />
</ bcaster >
< bcaster >
< item id ="13" item_url ="PicNews/img/255121556.JPG" link ="Html/News20079120045.html" itemtitle ="上海整治群租调查:外来低收入者住宿困难" />
< item id ="12" item_url ="PicNews/img/25320354.JPG" link ="Html/News20079100044.html" itemtitle ="50米长吊臂深夜砸向长沙八一桥 无人伤亡" />
< item id ="11" item_url ="PicNews/img/245195911.jpg" link ="Html/News2007920042.html" itemtitle ="“龙凤胎”大熊猫被日本企业认养" />
< item id ="10" item_url ="PicNews/img/245193344.jpg" link ="Html/News2007920041.html" itemtitle ="首页图片新闻测试" />
< item id ="9" item_url ="images/picnews_04.gif" link ="http://blog.csdn.net/j_jake" itemtitle ="j_jake专栏" />
</ bcaster >
我们要做的只是在新闻添加成功后再调用一个更新上面XML文件数据的函数,该函数如下:
private
void
WritePicNewsXML(
string
picpath,
string
htmlpath,
string
title)
... {
XmlDocument xmlDoc;
xmlDoc = new XmlDocument();
xmlDoc.Load(HttpContext.Current.Server.MapPath("../../PicNews/bcastr.xml"));
XmlNodeList xnl = xmlDoc.SelectSingleNode("bcaster").ChildNodes;
if (xnl.Count <= 5)//保持首页图片新闻不超过5条
...{
XmlNode rootnode = xmlDoc.SelectSingleNode("bcaster");
XmlElement fel = (XmlElement)rootnode.FirstChild;
int n = Convert.ToInt16(fel.GetAttribute("id"));//获得第一条图片新闻的id号
XmlElement el = xmlDoc.CreateElement("item");//添加子节点及属性
el.SetAttribute("id", Convert.ToString(n + 1));
el.SetAttribute("item_url", picpath);
el.SetAttribute("link", htmlpath);
el.SetAttribute("itemtitle", title);
rootnode.PrependChild(el);//将新加入的图片新闻添加到第一个位置
XmlNode lxn = rootnode.LastChild;
rootnode.RemoveChild(lxn);//删除最末尾的图片新闻
xmlDoc.Save(HttpContext.Current.Server.MapPath("../../PicNews/bcastr.xml"));
}
}
... {
XmlDocument xmlDoc;
xmlDoc = new XmlDocument();
xmlDoc.Load(HttpContext.Current.Server.MapPath("../../PicNews/bcastr.xml"));
XmlNodeList xnl = xmlDoc.SelectSingleNode("bcaster").ChildNodes;
if (xnl.Count <= 5)//保持首页图片新闻不超过5条
...{
XmlNode rootnode = xmlDoc.SelectSingleNode("bcaster");
XmlElement fel = (XmlElement)rootnode.FirstChild;
int n = Convert.ToInt16(fel.GetAttribute("id"));//获得第一条图片新闻的id号
XmlElement el = xmlDoc.CreateElement("item");//添加子节点及属性
el.SetAttribute("id", Convert.ToString(n + 1));
el.SetAttribute("item_url", picpath);
el.SetAttribute("link", htmlpath);
el.SetAttribute("itemtitle", title);
rootnode.PrependChild(el);//将新加入的图片新闻添加到第一个位置
XmlNode lxn = rootnode.LastChild;
rootnode.RemoveChild(lxn);//删除最末尾的图片新闻
xmlDoc.Save(HttpContext.Current.Server.MapPath("../../PicNews/bcastr.xml"));
}
}