|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了! endif
StarNodes=PageNo*PageSize-1取得肇端节点
EndNodes=(PageNo-1)*PageSize取得停止节点
ifEndNodes<0then
EndNodes=0
endif
ifStarNodes>AllNodesNumthen判别肇端节点数是不是凌驾总的节点数
EndNodes=EndNodes-(StarNodes-AllNodesNum)
假如凌驾则停止节点要减往(StarNodes-AllNodesNum)的差值不然下标会超界堕落
StarNodes=AllNodesNum
endif
ifEndNodes<0then
EndNodes=0
endif
whileStarNodes>=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
取得用户Eamil
text=objRootsite.childNodes.item(StarNodes).childNodes.item(6).text
获昨留言内容
*****************************************************************************
这里使作了XML的DOM来读取数据,明显objRootsite对像所对应的节点为<NewList>
objRootsite.childNodes.item(StarNodes)所对应的节点就是<list>节点由于不至一个<list>节点以是用了item()来辨认以后节点数据,跟着StarNodes的递加<list>节点根着往上移一个个读取<list>节点数据。
objRootsite.childNodes.item(StarNodes).childNodes.item(1).text所对应的节点为详细的每一个节点的文本值,这里(1)所对应的就是username用户名(由于<list>节点的子节点才是我们真正所要的)
******************************************************************************
text=replace(text,chr(13),"<br>")
替换回车
text=replace(text,chr(32),"")
替换空格
%>
<trbgcolor="#F0F0F0">
<tdwidth="21%"height="94"valign="top">姓名:<%=username%><br>
来自:<%=fromwhere%><br>
</td>
<tdwidth="79%"height="94"valign="top">|<ahref="<%=homepage%>"target=_blanktitle="<%=username%
>的主页">主页</a>
||<ahref="mailto:<%=email%>"title="给<%=username%>写信">信箱</a>||<fontcolor="#CC6633">
留言工夫:<%=Posttime%></font>|
<hr>
<%=text%></td>
</tr>
<trbgcolor="#FFFFFF"align="right">
<tdcolspan="2"></td>
</tr>
<%
StarNodes=StarNodes-1
wend
setobjXML=nothing
%>
<trbgcolor="#FFFFFF"align="right">
<tdcolspan="2">共有<<%=PageNum%>>页
<%
ifcint(PageNo)PageNumthen分页
response.write"<ahref=index.asp?PageNo="&(PageNo+1)&">上一页</a>"
endif
ifcint(PageNo)1then
response.write"<ahref=index.asp?PageNo="&(PageNo-1)&">下一页</a>"
endif
%>
</td>
</tr>
</table>
</body>
</html>
6、创建写新留言程序(PostNew.asp)
这个文件要完成的功效就是写进新的XML节点,起首创立一个XML对像然后把XML读进内存中,使用appendChild()办法到场我们天生的XML节点。
<%
username=request.form("username")
ifusername""then
fromwhere=request.form("fromwhere")
homepage=request.form("homepage")
email=request.form("email")
text=request.form("text")
text=replace(text,"<","<")
Posttime=now()
strSourceFile=Server.MapPath("/")&"List.xml"
猎取XML文件的路径这里依据你的假造目次分歧而分歧
SetobjXML=Server.CreateObject("Microsoft.XMLDOM")
创立XML对像
objXML.load(strSourceFile)
把XML文件读进内存中
SetobjRootlist=objXML.documentElement.selectSingleNode("NewList")
拔取<NewList>节点
ifobjRootlist.hasChildNodesthen
判别<NewList>是不是有子节点(由于假如是每次<NewList>是没有子节点的,
’假如不加判别在第一次运得时就会报错
id=objRootlist.lastchild.firstchild.text+1
这里取得将要拔出子节点的ID号,其ID号为<NewList>的最初一个子节点(lastchild)的第一个子节点(firstchild)的ID号加1(这里我们依照干系型数据库的ID号来递增)
else
如是没有字子节点则是第一次留言ID号设为1
id=1
endif
brstr=chr(13)&chr(10)&chr(9)
为了拔出XML文件中的节点换行空格分列划一
’(固然你也能够不必如许只是为了XML数据悦目而以)
XMLnode=brstr&"<list>"&brstr&_
"<id>"&id&"</id>"&brstr&_
"<username>"&username&"</username>"&brstr&_
"<fromwhere>"&fromwhere&"</fromwhere>"&brstr&_
"<Posttime>"&Posttime&"</Posttime>"&brstr&_
"<homepage>"&homepage&"</homepage>"&brstr&_
"<email>"&email&"</email>"&brstr&_
"<text>"&text&"</text>"&brstr&_
"</list>"&chr(13)
依据失掉的数据创建XML片断
setobjXML2=Server.CreateObject("Microsoft.XMLDOM")
创建一个新XML对像
objXML2.loadXML(XMLnode)
把XML版片断读进内存中
setrootNewNode=objXML2.documentElement
取得objXML2的根节点
objRootlist.appendChild(rootNewNode)
把XML片断拔出到List.xml中
objXML.save(strSourceFile)
存储lsit.xml文件(由于不存储List.xml只在内存中更新了)
setobjXML=nothing
setobjXML2=nothing
response.write"感谢您的留言"
response.end
endif
%>
<html>
<head>
<title>UntitledDocument</title>
<metahttp-equiv="Content-Type"content="text/html;charset=gb2312">
<styletype="text/CSS">
<!--
td{font-size:9pt}
-->
</style>
</head>
<bodybgcolor="#0099CC"text="#000000">
<tablewidth="80%"border="0"cellspacing="1"cellpadding="4"align="center"bgcolor="#FFFFFF">
<formaction="PostNew.asp"method="post"name="form1">
<trbgcolor="#000000">
<tdcolspan="2"><fontcolor="#FFFFFF">新留言</font></td>
</tr>
<trbgcolor="#EFEFEF">
<tdwidth="19%"align="right">姓名:</td>
<tdwidth="81%">
<inputtype="text"name="username">
**</td>
</tr>
<trbgcolor="#EFEFEF">
<tdwidth="19%"align="right">来自:</td>
<tdwidth="81%">
<inputtype="text"name="fromwhere"value="中国">
</td>
</tr>
<trbgcolor="#EFEFEF">
<tdwidth="19%"align="right">主页:</td>
<tdwidth="81%">
<inputtype="text"name="homepage"value="http://">
</td>
</tr>
<trbgcolor="#EFEFEF">
<tdwidth="19%"align="right">Email:</td>
<tdwidth="81%">
<inputtype="text"name="email">
</td>
</tr>
<trbgcolor="#EFEFEF">
<tdwidth="19%"align="right"valign="top">内容:</td>
<tdwidth="81%">
<textareaname="text"cols="60"rows="10"></textarea>
</td>
</tr>
<trbgcolor="#EFEFEF">
<tdwidth="19%"align="right"></td>
<tdwidth="81%">
<inputtype="submit"name="Submit"value="提交">
<inputtype="reset"name="Submit2"value="重填">
</td>
</tr>
</form>
</table>
</body>
</html>
7、总结
到这里我们就创建一个复杂并有分页功效的XML留言本了,呵看完了复杂吧,实在我这里只起一个举一反三的功效,其目标是引诱人人创建更庞大更好的ASP+XML程序,比方:所下面的留言本加上复兴功效,办理功效,点击计数据功效等,乃至你能够把它变一个BBS等等。最初留言本运转了局以下:
(List.xml在IE5上面的运转了局)
(留言本index.asp运转了局)
(PostNew.asp运得了局)
最初假如你拷贝我下面的程序的不克不及运转,但是是拷贝时大概是我正文时堕落了(不外首页要反省strSourceFile=Server.MapPath("/")&"List.xml"这里是不是堕落了,不外我能够告知你假如是提醒短少对像那末多是这里堕落了),最初你能够到http://Page2000.xiloo.com往下载源程序,也能够给我来信asp_boys@cmmail.com我会尽快给你寄往源程序。假如你有甚么成绩能够到http://www.4u2v.com/bbs由于我多在那边回覆一些我晓得的成绩。
asp对于服务器的要求较高,一般的服务器如果访问量一大就垮了,不得不重启。 |
|