风舞残阳 2008-4-2 13:43
如何建立自己的新闻发布系统?
下面是一个建立[wiki]新闻[/wiki]发布[wiki]系统[/wiki]的[wiki]程序[/wiki],不用和[wiki]数据库[/wiki]打交道哦
步骤:
(1).在vs2005中新建[wiki]网站[/wiki],新建三个aspx网页,分别命名:title.aspx,news.aspx,main.aspx其中title.aspx用来设置标题,可以自己设计,写几个字也行,news.aspx用来显示新闻标题,main.aspx用来显示新闻内容。
(2).新建htm页,用来设计框架。代码如下:
%26lt;htmlxmlns="
[color=#0000ff]http://www.w3.org/1999/xhtml[/color]
"%26gt;
%26lt;head%26gt;
%26lt;title%26gt;无标题页%26lt;/title%26gt;
%26lt;/head%26gt;
%26lt;framesetborder="0"bordercolor="#6699cc"framespacing="3"id="fsTop"rows="85,*"%26gt;
%26lt;frameframeborder="no"marginheight="0"marginwidth="0"name="title"noresizescrolling="no"src="title.aspx"%26gt;
%26lt;framesetborder="0"frameborder="1"framespacing="3"cols="110,*"%26gt;
%26lt;frameframeborder="0"marginheight="0"marginwidth="0"name="dir"src="news.aspx"style="BORDER-RIGHT:#99ccff1pxsolid;BORDER-TOP:#0033661pxsolid"scrolling="auto"%26gt;
%26lt;framebordercolor="#6699cc"frameborder="0"name="main"scrolling="yes"src="main.aspx?name=hello"style="BORDER-LEFT:#99ccff2pxgroove;BORDER-TOP:#0033661pxsolid"%26gt;
%26lt;/frameset%26gt;
%26lt;/frameset%26gt;
%26lt;/html%26gt;(3).现在你的程序还没有内容,新建xml文件,命名contents.xml,用来显示新闻标题,代码如下:
%26lt;?xmlversion="1.0"encoding="GB2312"?%26gt;
%26lt;topiclist[wiki]type[/wiki]="DreamsiteNews"%26gt;
%26lt;topic%26gt;
%26lt;title%26gt;欢迎进入千里之外的新闻网!%26lt;/title%26gt;
%26lt;href%26gt;main.aspx?name=hello%26lt;/href%26gt;
%26lt;/topic%26gt;
%26lt;topic%26gt;
%26lt;title%26gt;[wiki]测试[/wiki]新闻%26lt;/title%26gt;
%26lt;href%26gt;main.aspx?name=test%26lt;/href%26gt;
%26lt;/topic%26gt;
%26lt;topic%26gt;
%26lt;title%26gt;第一条新闻%26lt;/title%26gt;
%26lt;href%26gt;main.aspx?name=first%26lt;/href%26gt;
%26lt;/topic%26gt;
%26lt;topic%26gt;
%26lt;title%26gt;第二条新闻%26lt;/title%26gt;
%26lt;href%26gt;main.aspx?name=dddd%26lt;/href%26gt;
%26lt;/topiclist%26gt;注意我们的每条新闻内容都是一个xml文件,现在你知道该做什么了吧,新建hello.xml;test.xml;first.xml;dddd.xml文件,在这里给出一个例子,代码如下:
%26lt;?xmlversion="1.0"encoding="GB2312"?%26gt;
%26lt;document%26gt;
%26lt;title%26gt;今日新闻%26lt;/title%26gt;
%26lt;abstract%26gt;头版新闻%26lt;/abstract%26gt;
%26lt;author%26gt;千里之外%26lt;/author%26gt;
%26lt;content%26gt;%26lt;paragraph%26gt;大家好%26lt;/paragraph%26gt;%26lt;/content%26gt;
%26lt;/document%26gt;现在你就可以看到效果了,下面我们看一下发布新闻的代码,也很简单,新建manage.aspx页面,前台代码:
%26lt;/head%26gt;
%26lt;body%26gt;
%26lt;formid="form1"runat="server"%26gt;
%26lt;div%26gt;
%26lt;p%26gt;千里之外个人新闻发布系统
%26lt;/p%26gt;
文件名:
%26lt;asp:textboxid="TextBox1"runat="Server"/%26gt;
%26lt;Asp:RequiredFieldValidatorid="valid1"Crunat="Server"%26gt;(必要栏)
%26lt;/Asp:RequiredFieldValidator%26gt;%26lt;p%26gt;
文章名称:
%26lt;asp:textboxid="TextBox2"runat="server"/%26gt;
%26lt;Asp:RequiredFieldValidatorid="valid2"Crunat="Server"%26gt;(必要栏)
%26lt;/Asp:RequiredFieldValidator%26gt;
%26lt;p%26gt;
作者:
%26lt;asp:textboxid="TextBox3"runat="server"/%26gt;
%26lt;Asp:RequiredFieldValidatorid="valid3"Crunat="Server"%26gt;(必要栏)
%26lt;/Asp:RequiredFieldValidator%26gt;
%26lt;p%26gt;
摘要:%26lt;p%26gt;
%26lt;asp:textboxid="TextBox4"textmode="MultiLine"width="70%"runat="server"/%26gt;
%26lt;p%26gt;
内容:%26lt;p%26gt;
%26lt;asp:textboxid="TextBox5"textmode="MultiLine"rows="6"width="70%"runat="server"/%26gt;
%26lt;p%26gt;
%26lt;asp:Buttonid="submit"text="提交"runat="server"/%26gt;
%26lt;/div%26gt;
%26lt;/form%26gt;
%26lt;/body%26gt;后台代码如下:
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.IO;
usingSystem.Xml;
publicpartialclassmanage:System.Web.UI.Page
{
protectedvoidPage_Load([wiki]object[/wiki]sender,EventArgse)
{
//判断文件是否存在
if(File.Exists(Server.MapPath(TextBox1.Text+".xml")))
Response.Write("文件名已经存在,请重新选文件名!");
else
{
//首先将数据插入新闻列表中
XmlNodeCurrNode;
XmlDocumentxmldoc=newXmlDocument();
//加载索引文件
xmldoc.Load(Server.MapPath("contents.xml"));
stringinsstr;
//生成新闻索引
insstr="%26lt;topic%26gt;%26lt;title%26gt;"+TextBox2.Text+"%26lt;/title%26gt;%26lt;href%26gt;main.aspx?name="+TextBox1.Text+"%26lt;/href%26gt;%26lt;/topic%26gt;";
XmlDocumentFragmentdocFrag=xmldoc.CreateDocumentFragment();
docFrag.InnerXml=insstr;
CurrNode=xmldoc.DocumentElement;
//插入新闻索引队列中
CurrNode.InsertAfter(docFrag,CurrNode.LastChild);
//保存索引文件
xmldoc.Save(Server.MapPath("contents.xml"));
//把TextBox5中的文件换成符合xml格式的内容
stringxmlfile;
xmlfile=TextBox5.Text;
xmlfile=xmlfile.Replace("%26lt;","+lt;");
xmlfile=xmlfile.Replace("%26gt;","+gt;");
xmlfile=xmlfile.Replace("//","+apos;");
xmlfile=xmlfile.Replace("\r\n","%26lt;/paragraph%26gt;%26lt;paragraph%26gt;");
//把数据写入新建的xml文件中去;
XmlDocumentdoc;
doc=newXmlDocument();
insstr="%26lt;?xmlversion='1.0'encoding='GB2312'?%26gt;%26lt;document%26gt;%26lt;title%26gt;";
insstr+=TextBox2.Text+"%26lt;/title%26gt;%26lt;abstract%26gt;"+TextBox4.Text;
insstr+="%26lt;/abstract%26gt;%26lt;author%26gt;"+TextBox3.Text+"%26lt;/author%26gt;%26lt;content%26gt;%26lt;paragraph%26gt;";
insstr+=xmlfile+"%26lt;/paragraph%26gt;%26lt;/content%26gt;%26lt;/document%26gt;";
doc.LoadXml(insstr);
doc.Save(Server.MapPath(TextBox1.Text+".xml"));
Response.Write("新闻发布成功!");
TextBox1.Text="";
TextBox2.Text="";
TextBox3.Text="";
TextBox4.Text="";
TextBox5.Text="";
}
}
}
现在,一个简单的新闻发布系统已经建立完毕,你还可以编写更新程序,可以参照发布程序来写,有什么好的办法希望我们[wiki]共享[/wiki]哦!