日期:2010-10-09  浏览次数:20969 次

一个简单的新闻发布系统的说起:

首先,我们建立一个XML文档,命名为nnDB.xml:

---------------------------------------nnDB.xml---------------------------------------
  <?xml version="1.0" encoding="GB2312"?>
  <data><news></news></data>

---------------------------------------nnDB.xml---------------------------------------

接着,做一个发布的页面,这个发布页面连带了有新闻的显示列表,把他命名为post.asp吧!

---------------------------------------post.asp---------------------------------------
  <style>
  #news_list { width: 430px; float: left; border: 1px solid #CFCFCF; }
  #tt { width: 300px; float: left; border-top: 2px solid #CFCFCF; }
  #pt { width: 129px; float: right; border-top: 2px solid #CFCFCF; }
  #ct { width: 430px; float: left; border-top: 1px solid #CFCFCF; }
  #news_list li span { font-size: 12px; letter-spacing: 1px; font-family: Tahoma; }
  #c1 { width: 40px; float: left; padding: 5px 0px 5px 0px; background-color: #EFEFEF; font-weight: bold; color: #666; text-align: center; border: 1px solid #FFF; }
  #c2 { float: left; padding: 5px; font-size: 12px; color: #333; text-align: center; letter-spacing: 1px; border: 1px solid #FFF; }
  #c3 { width: 380px; float: right; margin: 0px 5px 0px 5px; padding: 3px 0px 3px 0px; text-align: right; color: #CCC; border-top: 1px dotted #CFCFCF; }
  </style>
  <%
    Set XMLOBJ = Server.CreateObject("Microsoft.XMLDOM")
    XMLOBJ.async = False
    XMLOBJ.load Server.MapPath("nnDB.xml")    
    Set news_root = XMLOBJ.documentElement.selectSingleNode("news")
    news_count = news_root.childNodes.length
    
    HTML_CODE = "<div id=""news_list"">"
    for i = 0 to news_count - 1
      Set temp_news = news_root.childNodes.item(i).childNodes
      HTML_CODE = HTML_CODE & "<li id=""tt""><span id=""c1"">标题</span><span id=""c2"">" & temp_news.item(3).text & "</span></li><li id=""pt""><span id=""c1"">作者</span><span id=""c2"">" & temp_news.item(4).text & "</span></li>"
      HTML_CODE = HTML_CODE & "<li id=""ct""><span id=""c1"">内容</span><span id=""c2"">" & temp_news.item(5).text & "</span><span id=""c3"">发表时间:" & temp_news.item(2).text & " 点击量:" & temp_news.item(6).text & "</span></li>"
    next
    HTML_CODE = HTML_CODE & "</div>"
    Response.write HTML_CODE
  %>

  <form id="form1" name="form1" method="post" action="save_DB.asp">
  <p>新闻标题:<input type="text" name="tt" /></p>
  <p>新闻作者:<input type="text" name="pt" /></p>
  <p>新闻内容:<textarea name="ct" cols="50" rows="12"></textarea></p>
  <p><input type="submit" name="Submit" value="提交" /><input type="reset" name="Submit2" value="重置" /></p>
  </form>

---------------------------------------post.asp---------------------------------------

最后就是save_DB.asp,写入XML的页面:

---------------------------------------save_DB.asp---------------------------------------
  <%
  ' tt 作者 pt 发布人 ct 新闻内容
  tt = trim(Request.Form("tt")) ' trim 去空格
  pt = trim(Request.Form("pt"))
  ct = trim(Request.Form("ct"))
  time_now = now()
  ' 抓时间,作为新闻条目的区别检索
  D_y = year(time_now)
  D_m = month(time_now)
  D_d = day(time_now)
  D_hr = hour(time_now)
  D_mi = minute(time_now)
  D_se = second(time_now)
  ' PS:为何要用日期时间做新闻区别呢?我们假设,这个发布后台,只有你一个人可以访问,那么可以肯定一样东西:同一时间内,只可能发布一篇文章。
  ' 当然,网站平台是面向多用户,如何制作更科学合理的数据索引呢?嗯,大家有兴趣,我日后再单独分类讨论。暂时就用这个吧!
  idx = D_y & D_m & D_d & D_hr & D_mi & D_se
  
  ' 中间的检查和判断,我就此跳过,直接看写入XML文档。
  if tt = "" or pt = "" or ct = "" then
    msg = "新闻标题、发布人和内容为必填项目。"
    Response.Write "<script>alert(""" & msg & "\n\n页面将自动返回...