动态网页技术之一:HTML+XML+VBScript

动态网页技术之一:HTML+XML+VBScript
studentinfo.html是前端工作文件,XML为后台数据库,脚本语言VBScript,可供学习HTML、XML、VBScript的朋友参考,拙作辛苦一天完成,欢迎转载,希望在此基础上扩充和提出改进意见!
用法:将后附三个文件studentinfo.html,studentinfo.xml,studentinfo.dtd粘贴拷贝到同一个文件夹下,双击就可以用IE打开studentinfo.html。
功能介绍:页面共分三个部分:
1、查询:在“请输入学号”编辑框中输入学号,单击“查询”,则性别、姓名、电子信箱显示在相应的编辑框中,如果点击“轮询”,则从上一次“查询”的下一个学号开始查询,连续单击“查询”,则可依次查询XML库中全部学生的信息。
2、显示和隐藏部分网页:单击“生成”按钮,则列表显示一个学生的信息,同时按钮上的文字变为“隐藏”,单击“隐藏”,列表信息消失,按钮文字变为“生成”,可以显示不同学生的信息,通过修改客户端源文件中调用过程3的实参来实现。
3、作者信息。
讨论:以上三个文件,全部在XMLSpy中编辑完成,已调试通过,在我的机器上如果不加DTD文件(也就是说在工作路径中没有DTD文件),会提示有不能识别的对象,即XML文件加载不成功,但道理上来讲,应该与DTD无关,实际上XML也确实没有引用DTD文件,原因何在,欢迎讨论。
­
­
附一:studentinfo.html
<html>
   <head>
      <title>studentinfo</title>
      <style type="text/css">
      <!--
   .mystyle
   {
    background-color: #ffffff;
    color=blue;font-size=18;
   }
   .yourstyle
   {
    background-color: #ffffff;
    color=brown;font-size=18;display=block;
   }
    -->
      </style>
      <script type="text/vbscript">
      <!--
    sub sub1()
  ' Set doc = CreateObject("Microsoft.XMLDOM")
  ' doc.loadxml("studentinfo.xml")
   studentID = editID.value
  ' msgbox "studentID:" & studentID
   set root=data.documentelement
   num = root.childnodes.length
   for i = 0 to num - 1
    set node = root.childnodes.item(i)
    ID = node.childnodes.item(0).text
   ' msgbox ID
    if studentID = ID then
     editname.value = node.childnodes.item(1).text
     sex.value = node.getattribute("sex")
     email.value = node.childnodes.item(2).text
     exit for
    end if
   next
   'msgbox data.documentelement.childnodes.length
   v2.value=1
    end sub
­
    sub sub2()
   'studentID = v1.value
  ' msgbox "studentID:" & studentID
   set root=data.documentelement
   num = root.childnodes.length
   if cint(v2.value) = 1 or cstr(editID.value) = "" or cint(editID.value) > num then
    v1.value = cint(editID.value) + 1
   end if
   'v1.value = cint(v1.value)
   'msgbox v1.value
   if cint(v1.value) < 1 or cint(v1.value) > num then
   ' msgbox v1.value
    v1.value = 1
   end if
   studentID = v1.value
   for i = 0 to num - 1
    set node = root.childnodes.item(i)
    ID = node.childnodes.item(0).text
   ' msgbox ID
    if studentID = ID then
     editID.value = node.childnodes.item(0).text
     editname.value = node.childnodes.item(1).text
     sex.value = node.getattribute("sex")
     email.value = node.childnodes.item(2).text
     exit for
    end if
   next
   v1.value = v1.value + 1
   'msgbox data.documentelement.childnodes.length
   v2.value = 0
    end sub
    
    sub sub3(index)
   set root=data.documentelement
   num = root.childnodes.length
   for i = 0 to num - 1
    set node = root.childnodes.item(i)
    ID = node.childnodes.item(0).text
   ' msgbox ID
    if cint(index) = cint(ID) then
     inID = ID
     inName = node.childnodes.item(1).text
     inSex = node.getattribute("sex")
     inEmail = node.childnodes.item(2).text
     exit for
    end if
   next
   inhtml = "<p align='center'><ul><li>学号:" + inID
   inhtml = inhtml+"</li><li>姓名:" + inName
   inhtml = inhtml+"</li><li>性别:" + Insex
   inhtml = inhtml+"</li><li>邮箱:<span class = 'mystyle'>" + inEmail  
   inhtml = inhtml+"</span></li></ul></p>"
   if cint(v3.value) = 1 then
    str = inhtml
    switch.value = " 隐 藏 "
    v3.value = 0
   else
    str = ""
    switch.value = " 生 成 "
    v3.value = 1
   end if
   context.innerhtml = str
    end sub
  -->
      </script>
   </head>
   <body>
    <xml id="data" src="studentinfo.xml"></xml>
    <p class="mystyle">hello!蝈蝈's friends!</p>
    <p align="center">请输入学号:
    <input type="text" size="5" name="editID" value="0"></input>
    <input type="button" name="display1" value="查询" onclick='sub1()'></input>
    <input type="button" name="display2" value="轮询" onclick='sub2()'></input>
    <input type="hidden" name="v1" value="1"></input>
    <input type="hidden" name="v2" value="1"></input></p>
    
    <hr width="50%"></hr>
    
    <p align="center">姓名:
  <input type="text" size="10" name="editname"></input>
    </p>
    
    <p align="center">性别:
  <input type="text" size="10" name="sex"></input>
    </p>
    
     <p align="center" class="yourstyle">电子邮箱:
  <input type="text" size="20" name="email"
  class="mystyle"></input>
    </p>
    
    <hr></hr>
    <p align="left">
    <input  type="button" name="switch" value=" 生 成 " size="20" onclick='sub3("2")'></input></p>
    <input type="hidden" name="v3" value="1"></input>
    <span id="context"></span>
    
    
    <hr></hr>
<p align="center"><font face="华文细黑" size="1">郭俸明  2008-1-12<br></br>北京市海淀区学院路40号<br></br>建议用IE5.0以上,800x600分辨率浏览</font></p>
    
   </body>
</html>
­
­
附二:studentinfo.xml
<?xml version="1.0" encoding="GB2312" standal?>
<!--DOCTYPE studentinfo SYSTEM "studentinfo.dtd"-->
<studentinfo>
<student sex="male">
  <ID>1</ID>
  <name>张三</name>
  <email>zhs@xml.net.cn</email>
</student>
<student sex="male">
  <ID>2</ID>
  <name>李四</name>
  <email>ls@xml.net.cn</email>
</student>
  <student sex="female">
  <ID>3</ID>
  <name>王五</name>
  <email>ww@xml.net.cn</email>
</student>
  <student sex="female">
  <ID>4</ID>
  <name>赵六</name>
  <email>zhl@xml.net.cn</email>
</student>
  <student sex="male">
  <ID>5</ID>
  <name>钱七</name>
  <email>qq@xml.net.cn</email>
</student>
  <student sex="female">
  <ID>6</ID>
  <name>孙八</name>
  <email>sb@xml.net.cn</email>
</student>
</studentinfo>
­
附三:studentinfo.dtd
<?xml version="1.0" encoding="GB2312"?>
<!--DTD generated by XMLSpy v2006 U ( http://www.altova.com )-->
<!ELEMENT studentinfo (student+)>
<!ELEMENT ID (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT student (ID, name, email)>
<!ATTLIST student
sex CDATA #REQUIRED
>
注:studentinfo.dtd由XMLSpy自动生成
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值