以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 XML基础 』  (http://bbs.xml.org.cn/list.asp?boardid=1)
----  关于一个留言本程序,xml格式去掉<xml>与</xml>后,index.asp与PostNew.asp文件怎么改才能正常  (http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=6725)


--  作者:weblove26
--  发布时间:4/14/2004 1:27:00 PM

--  关于一个留言本程序,xml格式去掉<xml>与</xml>后,index.asp与PostNew.asp文件怎么改才能正常
关于一个留言本程序,xml格式去掉<xml>与</xml>后,index.asp与PostNew.asp文件怎么改才能正常

我想使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>

现在改成如下格式:
<?xml version="1.0" encoding="gb2312"?><GuestBook>……</GuestBook>,注意前后只是去掉了<xml>与</xml>,怎么改index.asp与PostNew.asp文件,使留言本正常浏览,请各位帮忙指点一下,这各程序对我有用啊?谢谢

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>


--  作者:weblove26
--  发布时间:4/14/2004 1:28:00 PM

--  
不知道上面说清没有,我很菜,请高手帮忙,谢谢?
--  作者:孤独
--  发布时间:4/14/2004 6:41:00 PM

--  
把这个 Set objRootsite = objXML.documentElement.selectSingleNode("GuestBook")
改成访问根节点,因为你把xml删掉了,guestbook就是根了.
--  作者:weblove26
--  发布时间:4/15/2004 10:48:00 AM

--  怎么改成访问根节点阿?
怎么改成访问根节点阿?我不懂xml阿
--  作者:weblove26
--  发布时间:4/15/2004 10:50:00 AM

--  谢谢
以下是引用孤独在2004-4-14 18:41:35的发言:
把这个 Set objRootsite = objXML.documentElement.selectSingleNode("GuestBook")
改成访问根节点,因为你把xml删掉了,guestbook就是根了.

谢谢,能不能给出代码?我不懂杂改,谢谢


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