以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  关于留言本程序,进来看看  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=6815)


--  作者:weblove26
--  发布时间:4/18/2004 12:04:00 AM

--  关于留言本程序,进来看看
对XML老手老说这问题太菜了,就是怎么删除一条留言啊,removeChild怎么用,能把删除一条留言的代码写一下吗?谢谢

list.xml
<?xml version="1.0" encoding="gb2312"?>
<xml><GuestBook><item><id>1</id><username>charry</username><fromwhere>61.191.196.12</fromwhere><posttime>2003-6-15 18:47:21</posttime><homepage>http://charry.org</homepage><email>charry@charry.org</email><text>我在学xml
大家共同来研究:)</text></item>
<item><id>2</id><username>charry</username><fromwhere>218.104.76.16</fromwhere><posttime>2003-6-16 16:10:42</posttime><homepage>http://charry.org</homepage><email>charry</email><text>今天和张三打球,我赢了!</text></item></GuestBook></xml>

index.asp代码如下
<%
strSourceFile = Server.MapPath("List.xml")
Set objXML = Server.CreateObject("Microsoft.FreeThreadedXMLDOM")
objXML.load(strSourceFile)
Set objRootsite = objXML.documentElement.selectSingleNode("GuestBook")
%>
<html>
<head>
<title>留言本(Powered by XML)</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
td { font-family: "宋体"; font-size: 9pt; text-decoration: none}
a { font-family: "宋体"; font-size: 9pt; color: #0066CC; text-decoration: none}
a:hover { color: #FF6600; text-decoration: underline}
-->
</style>
</head>
<body bgcolor="#0099CC" text="#000000">
<table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#CCCCCC">
<tr bgcolor="#000000">
  <td colspan="2">
   <font color="#FFFFFF">留言溥</font>
   <a href="PostNew.asp"><font color=#FFFFFF>写新留言</font></a>
  </td>
</tr>
<%
'每页显示10条留言
PageSize =10  

'获取子节点数据(因为是从节点数从0开始的所最大子节点数要减1)
AllNodesNum = objRootsite.childNodes.length - 1
  
'算出总页数
PageNum = AllNodesNum\PageSize + 1
PageNo = Request.querystring("PageNo")

'如果是每一次获得页面则定位到每一页显示最新的留言
if PageNo="" then
  PageNo = PageNum
end if

'获得起始节点
StarNodes = PageNo*PageSize - 1

'获得结束节点
EndNodes = (PageNo-1)*PageSize

if EndNodes < 0 then
  EndNodes = 0
end If

'判断起始节点数是否超过总的节点数
if StarNodes > AllNodesNum then
  '如果超过则结束节点要减去(StarNodes-AllNodesNum)的差值否则下标会超界出错
  EndNodes=EndNodes-(StarNodes-AllNodesNum)
  StarNodes=AllNodesNum
end if
if EndNodes < 0 then
  EndNodes=0
end if
while StarNodes >= EndNodes
  username  = objRootsite.childNodes.item(StarNodes).childNodes.item(1).text
  fromwhere = objRootsite.childNodes.item(StarNodes).childNodes.item(2).text
  Posttime  = objRootsite.childNodes.item(StarNodes).childNodes.item(3).text
  homepage  = objRootsite.childNodes.item(StarNodes).childNodes.item(4).text
  email   = objRootsite.childNodes.item(StarNodes).childNodes.item(5).text
  text   = objRootsite.childNodes.item(StarNodes).childNodes.item(6).text


  '替代回车
  text = Replace(text,Chr(13),"<br>")
  
  '替代空格
  text = Replace(text,Chr(32)," ")

  text = Replace(text,"<","&lt")

  text = Replace(text,">","&gt")

%>
<tr bgcolor="#F0F0F0">
<td width="21%" height="94" valign="top">姓 名:<%=username%><br>
来 自:<%=fromwhere%><br>
</td>
<td width="79%" height="94" valign="top"> | <a href="<%=homepage%>" target=_blank title="<%=username%>的主页">主页</a>
| | <a href="mailto:<%=email%>" title="给<%=username%>写信">信箱</a> | |<font color="#CC6633">
留言时间:<%=Posttime%> </font>|
<hr>
<pre><%=text%></pre></td>
</tr>
<tr bgcolor="#FFFFFF" align="right">
<td colspan="2"> </td>
</tr>
<%
StarNodes = StarNodes - 1
wend
set objXML = nothing
%>
<tr bgcolor="#FFFFFF" align="right">
<td colspan="2"> 共有<<%=PageNum%>>页
<%
if cint(PageNo)<>PageNum then'分页
response.write "<a href='index.asp?PageNo="&(PageNo+1)&"'>上一页</a>"
end if
if cint(PageNo)<>1 then
response.write "<a href='index.asp?PageNo="&(PageNo-1)&"'>下一页</a> "
end if
%>
</td>
</tr>
</table>
</body>
</html>


PostNew.asp代码:
<%
username = Request.Form("username")
if username <> "" then
  fromwhere = Request.ServerVariables("REMOTE_HOST")
  homepage = Request.Form("homepage")
  email = Request.Form("email")
  text = Request.Form("text")

  'text = Replace(text,"<","&lt;")
  'text = Replace(text,">","&gt;")

  Posttime =now()
  
  strSourceFile = Server.MapPath("List.xml")

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

  Set objRootlist = objXML.documentElement.selectSingleNode("GuestBook")
  
  If objRootlist.hasChildNodes then
   id = objRootlist.lastChild.firstChild.text + 1
  Else
   id=1
  End If
  

  
  Set oListNode = objXML.documentElement.selectSingleNode("GuestBook").AppendChild(objXML.createElement("item"))
  
  Set oDetailsNode = oListNode.appendChild(objXML.createElement("id"))
    oDetailsNode.Text = id
    
    Set oDetailsNode = oListNode.appendChild(objXML.createElement("username"))
    oDetailsNode.Text = username
    
    Set oDetailsNode = oListNode.appendChild(objXML.createElement("fromwhere"))
    oDetailsNode.Text = fromwhere
    
    Set oDetailsNode = oListNode.appendChild(objXML.createElement("Posttime"))
    oDetailsNode.Text = Posttime
  
  Set oDetailsNode = oListNode.appendChild(objXML.createElement("homepage"))
    oDetailsNode.Text = homepage
  
  Set oDetailsNode = oListNode.appendChild(objXML.createElement("email"))
    oDetailsNode.Text = email
    
    Set oDetailsNode = oListNode.appendChild(objXML.createElement("text"))
    oDetailsNode.Text = text

  
  objXML.save(strSourceFile)
  
  Set objXML=nothing
  response.write "谢谢您的留言"
  Response.Redirect "index.asp"
  response.end
End if
%>
<html>
<head>
<title>撰写留言</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<style type="text/css">
<!--
td { font-size: 9pt}
-->
</style>
</head>
<body bgcolor="#0099CC" text="#000000">
<table width="80%" border="0" cellspacing="1" cellpadding="4" align="center" bgcolor="#FFFFFF">
<Form action="PostNew.asp" method="post" name="Form1">
<tr bgcolor="#000000">
<td colspan="2"><font color="#FFFFFF">新留言</font></td>
</tr>
<tr bgcolor="#EFEFEF">
<td width="19%" align="right">姓 名:</td>
<td width="81%">
<input type="text" name="username">
** </td>
</tr>
<tr bgcolor="#EFEFEF">
<td width="19%" align="right">主 页:</td>
<td width="81%">
<input type="text" name="homepage" value="http://">
</td>
</tr>
<tr bgcolor="#EFEFEF">
<td width="19%" align="right">Email:</td>
<td width="81%">
<input type="text" name="email">
</td>
</tr>
<tr bgcolor="#EFEFEF">
<td width="19%" align="right" valign="top">内 容:</td>
<td width="81%">
<textarea name="text" cols="60" rows="10"></textarea>
</td>
</tr>
<tr bgcolor="#EFEFEF">
<td width="19%" align="right"> </td>
<td width="81%">
<input type="submit" name="Submit" value="提交">
<input type="reset" name="Submit2" value="重填">
</td>
</tr>
</Form>
</table>
</body>
</html>


--  作者:diegor
--  发布时间:4/18/2004 12:28:00 AM

--  
xmlNodesChild = xmlDom.documentElement.getElementById("XXXXX")
xmlDom.removeChild(xmlNodesChild )


[此贴子已经被作者于2004-4-18 17:01:58编辑过]

--  作者:weblove26
--  发布时间:4/18/2004 12:43:00 PM

--  
具体点,好吗?
--  作者:diegor
--  发布时间:4/18/2004 5:02:00 PM

--  
还怎么具体?这两句就够了啊!
--  作者:weblove26
--  发布时间:4/19/2004 12:26:00 PM

--  
不知道怎么放?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms