您所在的位置: 程序员家园 -> 家园博客 ->
 
在哪里摔倒
就在哪里自己爬起来

用户登录

查  找

最新评论

最新留言

常用网站

网易邮箱 GMAIL  

百度搜索 MSDN

霏凡软件 BT精品

影视帝国 射 手 网

电驴下载 全 库 网

友情连接

茄菲的窝 冰冰博客

枫叶飘零 玫  瑰

ACEN 云 豹 子

统  计



XML投票系统
狼子 发表于 2006-10-25 21:45:00 阅读全文 | 回复(0) | 引用通告 | 编辑

从《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的通讯录

发表评论:

    昵称:
    密码:
    主页:
    标题:
Powered by Oblog.