一个简单的采用XML的在线人员统计类

class online
sub userState(uState)
dim userIP,xmlDoc,root,newUser,delNode,oTime
oTime=day(now())*24*60+hour(now())*60+minute(now())
set xmlDoc = server.createObject("Msxml2.DOMDocument")
xmlDoc.async = false
xmlDoc.load(Server.mappath(xmlUrl & "online.xml"))
set root=xmlDoc.SelectNodes ("//online/at[@oSessionID=''" & session.sessionID & "'' or @oUname=''" & myCname & "'' or oUip=''" & userIP & "'']")
if root.length=0 then
set newUser=xmlDoc.createElement("at")
xmlDoc.documentElement.appendChild(newUser)
newUser.setAttribute "oSessionID",session.sessionID
newUser.setAttribute "oUname",myCname
newUser.setAttribute "oUtype",myUtype
newUser.setAttribute "oUstate",uState
newUser.setAttribute "oUip",userIP
newUser.setAttribute "oUactiveTime",oTime
set newUser=nothing
else
root.item(0).attributes.item(0).value=session.sessionID
root.item(0).attributes.item(1).value=myCname
root.item(0).attributes.item(2).value=myUtype
root.item(0).attributes.item(3).value=uState
root.item(0).attributes.item(4).value=userIP
root.item(0).attributes.item(5).value=now()
end if
set delNode=XmlDoc.documentElement.selectSingleNode("//online/at[@oUactiveTime<''" & oTime + 20 & "'']")
root.reomveChild(delNode)
set delNode=nothing
set root=nothing
xmlDoc.save(server.mappath(xmlUrl & "online.xml"))
end sub

sub onlineCount()
dim uOnline,gOnline,root,xmlDoc
set xmlDoc = server.createObject("Msxml2.DOMDocument")
xmlDoc.async = false
xmlDoc.load(Server.mappath(xmlUrl & "online.xml"))
set root=xmlDoc.SelectNodes ("//online/at[@oUtype=''1'']")
uOnline=root.length
set root=xmlDoc.SelectNodes ("//online/at[@oUtype=''0'']")
gOnline=root.length
set root=nothing
set xmlDoc=nothing
response.write "在线:" & Gonline+Uonline & " 会员:" & Uonline & " 游客:" & Gonline
end sub

function xChar(str)
xChar=str
xChar=replace(xChar,"""",""")
xChar=replace(xChar,"''","''")
xChar=replace(xChar,"<","<")
xChar=replace(xChar,">",">")
xChar=replace(xChar,"&","&")
end function
end class

虽然这段代码很简单但已函盖了XMLDOM的创建,保存,节点的增加,删除,节点的属性设置,DOM中利用XSL进行简单查询等等.

在在线人数比较多的站点,建议先用XSL进行索引,否则速度不堪想象.

文中oTime记录用户的最后活动时间,由于XML的日期期数据处理比较复杂,比如要用DTD,XSL等等给代码编写和用户使用造成不变,故这里将其转换为数字型.

而对在线的统计通过 选取的文档的 length 来取,当然你也可以直接用XSL的count函数.

xChar是XML特殊字符处理函数,这里没有加上字符处理,使用时在字符型数据处理时请使用此函数.当然如果你非常熟悉DTD等等语言,可以不用此函数而用它来对文档进行控制.

时间: 2024-10-31 11:03:45

一个简单的采用XML的在线人员统计类的相关文章

请大神帮忙写一个简单的聚类算法程序,在线等……用matlab或者java实现

问题描述 请大神帮忙写一个简单的聚类算法程序,在线等--用matlab或者java实现 Step1:将N个数据,按照从小到大的顺序排序 d1.d2,.....dn:其中d1时最小值,dn是最大值 聚类判别阈值计算方法为: Step2:让每个数据都作为一个类,那么有 {d1},{d2},{d3},.....{dn} Step3:计算聚类中心 假设共有P个类,那么1<=k<=P,其中r代表每个类中数据的个数,同时计算相邻两个聚类中心之间的距离,如下 Step4:找出相邻两个聚类中心的最小值 Ste

一个简单的基于XML的模块集成框架

xml 1. 准备一个xml文件 xmlmenu 1<Menu> 2    <MenuItem Name="系统管理" AssemblyName="" FormTag="FALSE" AddToolbar="FALSE"> 3        <MenuItem Name="权限管理" ShortCut="" Image="" Assemb

一个简单且很好用的php分页类_php技巧

复制代码 代码如下: class Page {    // 分页栏每页显示的页数    public $rollPage = 6;    // 页数跳转时要带的参数    public $parameter  ;    // 默认列表每页显示行数    public $listRows = 20;    // 起始行数    public $firstRow ;    // 分页总页面数    protected $totalPages  ;    // 总行数    protected $to

一个简单的js渐显(fadeIn)渐隐(fadeOut)类_javascript技巧

要兼容IE(element.style.filter = 'alpha(opacity=value)')和非IE(element.style.opacity=value)就可以了.另,还要注意,非IEopaciy的值是0~1之间,IE是1-100.   下面,贴代码: 复制代码 代码如下: /** * @projectDescription 动画(渐显.渐隐)类 * /** * @projectDescription KINGKIT UI * @date 2010-6-1 * @author K

一个简单的XML Schema的例子

xml 我们可以看到,DTD的语法相当复杂,并且它不符合XML文件的标准,自成一个体系.也就是说DTD文档本身并不是一个良好形式的XML文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的XML应用是建立在DTD之上的.另外一个代替DTD的就是W3C定义的Schema,Schema从字面意义上来说,可以翻译成模式.大纲.计划.规划等等.它的基本意思就是说为XML文档制定一种模式. Schema相对于DTD的明显好

一个简单的XML Schema例子

我们可以看到,DTD的语法相当复杂,并且它不符合XML文件的标准,自成一个体系.也就是说DTD文档本身并不是一个良好形式的XML文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的XML应用是建立在DTD之上的. 另外一个代替DTD的就是W3C定义的Schema,Schema从字面意义上来说,可以翻译成模式.大纲.计划.规划等等.它的基本意思就是说为XML文档制定一种模式. Schema相对于DTD的明显好处是XML

想用mvc5做一个简单的在线考试系统,求大神指点

问题描述 想用mvc5做一个简单的在线考试系统,求大神指点!!!!留下qq或者其他,详聊 解决方案 解决方案二:http://test.icesoft.cc我刚搞完的,看合不合口味,结贴给源代码解决方案三:引用1楼Acyk的回复: http://test.icesoft.cc我刚搞完的,看合不合口味,结贴给源代码 晕!难道不能输出为一张完整的试卷吗?为什么一题一屏幕,而且还不断刷新页面呢?解决方案四:引用楼主qq_24733397的回复: 想用mvc5做一个简单的在线考试系统,求大神指点!!!!

一个简单的XML Schema的例子_XML/RSS

我们可以看到,DTD的语法相当复杂,并且它不符合XML文件的标准,自成一个体系.也就是说DTD文档本身并不是一个良好形式的XML文档,上面的关于DTD的介绍也仅仅是作了一个简介,目的是帮助大家能读懂DTD文件以及在必要时创建简单的DTD文件,因为现在很多的XML应用是建立在DTD之上的. 另外一个代替DTD的就是W3C定义的Schema,Schema从字面意义上来说,可以翻译成模式.大纲.计划.规划等等.它的基本意思就是说为XML文档制定一种模式. Schema相对于DTD的明显好处

初学者 用visual studio中的C#编写一个简单的电子词典 在线等 求帮助

问题描述 初学者 用visual studio中的C#编写一个简单的电子词典 在线等 求帮助 求大神用visual studio2010帮忙编一个简单电子词典的程序,在线等 新人初学者求帮助 解决方案 很简单啊,写个数组就行了 解决方案二: 如果是像上面这样的电子词典,很容易解决.1.使用INI进行保存条目.(想要了解INI可以参考:http://www.cnblogs.com/Ray-chen/archive/2011/11/14/2248496.html)2.使用StreamWriter来读