从《XML编程实例教程》学的,P403实例10-4XML网络留言板,这个书没有光盘的,我按书上的代码敲的是这个:UploadFiles/2006-10/1025793357.rar
书上的原版代码,因为编号是按次序12345的,所以在更新票数的时候可以用这两句代码:
noteid=parseInt(Request.Form("rb"));
var noteitem=noteitems.item(noteid-1);
第一句,取投票的编号,就是id值,第二句,取要更新的节点,第noteid-1个节点,这里的索引是从0开始计算的,编号次序是12345,所以投第三个票时,就是更新索引为2的节点了
我修改了一下,加入了添加投票选项,更新编号不按顺序的选项,因为只是想看xml的操作,所以别的都没有管
用JavaScript做脚本:UploadFiles/2006-10/1025918230.rar
用VBScript做脚本:UploadFiles/2006-10/1025783044.rar
就是用Microsoft.XMLDom来操作的
先看js脚本:
//创建DOM对象
var objDom=Server.CreateObject("Microsoft.XMLDom");
objDom.load(Server.MapPath("ex49.xml"));
var noteitems=objDom.selectNodes("doc/note");
循环显示XML里的各项:
<%
for(var noteitem=noteitems.nextNode();noteitem;noteitem=noteitem.nextSibling) {
//用每个主题的id为主题编号,写出每个主题的内容
%>
<input type="radio" name="rb" value="<% =noteitem.childNodes.item(0).text %>">
<% =noteitem.childNodes.item(0).text %>
<% =noteitem.childNodes.item(1).text %><br>
<%
}
%>
添加节点:
//添加note节点
newnote=objDom.createElement("note");
noteitem=objDom.documentElement.appendChild(newnote);
//添加这个节点下的三个子节点,id
newnote=objDom.createElement("id")
tempnote=noteitem.appendChild(newnote);
tempnote.text=myid;
更新票数:
//取要更新的投票数的节点,更新抽票数
for(var noteitem=noteitems.nextNode();noteitem;noteitem=noteitem.nextSibling)
{
if(noteitem.childNodes.item(0).text==noteid)
{
//这个就是要更新的节点了,需要更新这个节点下的hit节点
//方法:先取原来的票数,然后呢,创建一个新的节点,值是原票数+1,用新的节点替换旧的节点
var hititem=noteitem.childNodes.item(2);
var newHititem=objDom.createElement("hit");
newHititem.text=parseInt(parseInt(hititem.text)+1);
var objNode=noteitem.replaceChild(newHititem,hititem);
break;
}
}
VBScript的时候是这个:
'创建DOM对象
set objDom=Server.CreateObject("Microsoft.XMLDom")
objDom.load Server.MapPath("ex49.xml")
set noteitems=objDom.selectNodes("doc/note")
添加节点:
'添加note节点
set newnote=objDom.createElement("note")
set noteitem=objDom.documentElement.appendChild(newnote)
'添加这个节点下的三个子节点,id
set newnote=objDom.createElement("id")
set tempnote=noteitem.appendChild(newnote)
tempnote.text=myid
修改节点:
'取要更新的投票数的节点,更新抽票数
for each noteitem in noteitems
tid=noteitem.childNodes.item(0).text
if tid=noteid then
set hititem=noteitem.childNodes.item(2)
set newHititem=objDom.createElement("hit")
newHititem.text=cint(cint(hititem.text)+1)
noteitem.replaceChild newHititem,hititem
exit for
end if
next
想玩C#脚本的,显示的时候卡了一下,害我那天没有玩完,贴子在这里:http://www.tiantiansoft.com/bbs/dispbbs.asp?boardID=40&ID=142385
现在没空了,我要玩html编辑器,玩完html编辑器呢,想玩一个XML的通讯录