Asp中使用Xml作为数据存储方式的新闻发布

来源:互联网 发布:西安城市规划 知乎 编辑:程序博客网 时间:2024/05/22 13:58

<link href="css.css" rel="stylesheet" type="text/css">

<html>
<style type="text/css">
<!--
body {
 background-color: #CECECE;
}
-->
</style><head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新闻管理</title>
<script language="javascript">
function CheckDel(str)
{
 if(!confirm("确认删除此条新闻吗?"))
  return false;
 myform.txtCmd.value = "Del";
 myform.txtID.value = str;
 myform.submit();
}

function CheckShow(str)
{
 myform.txtCmd.value = "Show";
 myform.txtID.value = str;
 myform.submit();
}

function CheckAdd()
{
 if(myform.txtNewsTitle.value=="")
 {
  alert("新闻标题不可以空");
  myform.txtNewsTitle.focus();
  return(false);
 }
 
 myform.txtCmd.value="Add";
 myform.submit();
}

function CheckEdit()
{
 if(myform.txtNewsTitle.value=="")
 {
  alert("新闻标题不可以空");
  myform.txtNewsTitle.focus();
  return(false);
 }

 myform.txtCmd.value="Edit";
 myform.submit();
}
</script>
</head>

<body>
<br>
<%
cmd = Request("txtCmd")
id = Request("txtID")
NewsTitle = Request("txtNewsTitle")
NewsContent = Request("txtNewsContent")

Dim ShowNewsTitle,ShowNewsContent

Select Case cmd
 case "Del"
  Call Del
 case "Show"
  Call Show
 case "Add"
  Call Add
 case "Edit"
  Call Edit
End Select

Sub Del
 strSourceFile = Server.MapPath("News.xml")
 Set objXML = Server.CreateObject("Microsoft.XMLDOM")
 objXML.load(strSourceFile)
 Set objRootsite = objXML.documentElement.selectSingleNode("news")

 objRootsite.removeChild(objRootsite.childNodes.item(id))   '删除节点
 
 objXML.save(strSourceFile)   '保存结果
 Set objXML=nothing
End Sub

Sub Show
 strSourceFile = Server.MapPath("News.xml")
 Set objXML = Server.CreateObject("Microsoft.XMLDOM")
 objXML.load(strSourceFile)
 
 Set objRootsite = objXML.documentElement.selectSingleNode("news")
      
  ShowNewsTitle    = objRootsite.childNodes.item(id).childNodes.item(0).text
  ShowNewsContent  = objRootsite.childNodes.item(id).childNodes.item(2).text
  
 Set objXML=nothing
End Sub

Sub Add
  strSourceFile = Server.MapPath("news.xml")
  Set objXML = Server.CreateObject("Microsoft.XMLDOM")  
  objXML.load(strSourceFile)  
  If objXML.parseError.ErrorCode <> 0 Then
       objXML.loadXML "<?xml version=""1.0"" encoding=""gb2312"" ?><news/>"
    End If

  Set oListNode = objXML.documentElement.selectSingleNode("news").AppendChild(objXML.createElement("new"))  
  Set oDetailsNode = oListNode.appendChild(objXML.createElement("NewsTitle"))
    oDetailsNode.Text = NewsTitle
    Set oDetailsNode = oListNode.appendChild(objXML.createElement("NewsDate"))
    oDetailsNode.Text = Date()    
    Set oDetailsNode = oListNode.appendChild(objXML.createElement("NewsContent"))
    oDetailsNode.Text = NewsContent
 
    objXML.save(strSourceFile)   
  Set objXML=nothing
End Sub

Sub Edit
 strSourceFile = Server.MapPath("News.xml")
 Set objXML = Server.CreateObject("Microsoft.XMLDOM")
 objXML.load(strSourceFile)
 Set objRootsite = objXML.documentElement.selectSingleNode("news")
 
 objRootsite.childNodes.item(id).childNodes.item(0).text = NewsTitle     '修改该接点下的值
 objRootsite.childNodes.item(id).childNodes.item(1).text = Date()
 objRootsite.childNodes.item(id).childNodes.item(2).text = NewsContent
 
 objXML.save(strSourceFile)   '保存结果
 Set objXML=nothing
End Sub
%>

<form name="myform" action="NewsAdmin.Asp" method="post">
<table width="750" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><div align="right"><a href="News.xml" target="_blank"><img src="images/xml.gif" width="36" height="14" border="0"></a></div></td>
  </tr>
</table>

<table border="1" style="border-collapse:collapse" width="80%" align="center">
 <tr>
  <td align="Right">新闻标题:</td>
  <td align="left"><input type="text" name="txtNewsTitle" value="<%=ShowNewsTitle%>"></td>
 </tr>
 <tr>
  <td align="Right">新闻内容:</td>
  <td align="left"><textarea name="txtNewsContent" rows="9" cols="60"><%=ShowNewsContent%></textarea></td>
 </tr>
 <tr>
   <td align="center" colspan="2">
   <input type="button" name="BtAdd" value="新增" onClick="CheckAdd();" <% if Cmd="Show" then Response.Write("disabled")%>>
  <input type="button" name="BtEdit" value="修改" onClick="CheckEdit();" <% If Cmd<>"Show" then Response.Write("disabled") %>>
  <input type="button" name="BtRet" value="取消" onClick="myform.submit();">
  </td>
 </tr>
</table>
<br>
<% 

 strSourceFile = Server.MapPath("News.xml")
 Set objXML = Server.CreateObject("Microsoft.XMLDOM")
 'Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
 objXML.load(strSourceFile)
 Set objRootsite = objXML.documentElement.selectSingleNode("news")
 
   pagesize = 20
   '每页显示5篇日记
   AllNodesNum = objRootsite.childNodes.length
   '获取子节点数据
   pagenum = AllNodesNum/Pagesize +1  
   '算出总页数
   pageno = request.querystring("pageno") 
   ' 定位到所要的页
   if request("pageno") = "" then
   pageno = pagenum
   else
   pageno=request("pageno")
   end if
   starnodes = pageno*pagesize - 1 
   '获得取始结点
   endnodes   = (pageno-1)*pagesize
    '获得结束结点
   if endnodes<0 then
      endnodes = 0
   end if
'判断起始节点数是否超过总的节点数
 if starNodes > AllNodesNum-1 then
  '如果超过则结束节点要减去(StarNodes-AllNodesNum)的差值否则下标会超界出错
  EndNodes  = StartNodes - 19
  StarNodes = AllNodesNum - 1
 end if
 
 if endNodes < 0 then
  endNodes=0
 end if
 %>

<table width="764" border="1" style="border-collapse:collapse" align="center" cellpadding="0" cellspacing="0">
<tr>
 <td width="545" height="21" align="Center">新闻标题</td>
 <td width="154" align="Center">发布时间</td>
 <td width="51" align="center">删除</td>
</tr> 
<%
 
 
 while starNodes >= endNodes 
        NewsTitle    = objRootsite.childNodes.item(StarNodes).childNodes.item(0).text
     NewsDate  = objRootsite.childNodes.item(StarNodes).childNodes.item(1).text

                '替代回车
  content = Replace(content,Chr(10),"<br>")  
  '替代空格
  content = Replace(content,Chr(32),"&nbsp;")
  %>
  <tr>
   <td width="545" height="21" align="Left"><a href="#" onClick="CheckShow(<%=StarNodes%>);"><%=NewsTitle%></a></td>
   <td width="154" align="Center"><%=NewsDate%></td>
   <td align="center"><a href="#" onClick="return CheckDel(<%=StarNodes%>)">删除</a></td>
  </tr>
  <%   starNodes = StarNodes - 1
 wend
 set objXML = nothing  %>
</table><br>

<table width="750" border="0" align="center" cellpadding="0" cellspacing="1">
  <tr>
    <td><div align="right"><font size="2"><strong>|共有 <%=AllNodesNum%>篇/<%=pagenum%> 页|当前为第 <%=pageno%> 页|
<%  if cint(pageno)<=pagenum and cint(pageno)>1  then'分页
 response.write "<a href='NewsAdmin.asp?pageno="&(pageno-1)&"'>上一页</a>|"
 end if
 if cint(pageno)<cint(pagenum) then
 response.write "<a href='NewsAdmin.asp?PageNo="&(PageNo+1)&"'>下一页</a>|"
 end if 
  %>
       
        <% if PageNum>1 then  
   for num=1 to PageNum
 response.write "<a href='NewsAdmin.asp?PageNo="&(num)&"'>"&(num)&"</a>|"
 next
 end if
 %>
        </strong></font></div></td>
  </tr>
</table>
<input type="hidden" name="txtCmd" value="">
<input type="hidden" name="txtID" value="<%=id%>">
</form>
</body>
</html>
 

原创粉丝点击