本程序中利用asp代码生成的日志信息存储到xml文件中,然后由xslt格式化输出
该程序共分三个部分:
1. 生成日志的asp程序
代码见以前的一篇文章:
http://blog.csdn.net/precipitant/archive/2005/04/28/366634.aspx
2. 由 上面的 程序 生成的日志文件(.xml)
<?
xml version="1.0" encoding="gb2312"
?>
<? xml-stylesheet type='text/xsl' href='logInfo.xsl' ?>
< syslog >
< log >
< username > 塞北的雪 </ username >
< operate > 登录 </ operate >
< userip > 192.168.22.205 </ userip >
< opdate > 2006-2-15 8:21:27 </ opdate >
</ log >
< log >
< username > 塞北的雪 </ username >
< operate > 删除用户(delete from sys_user where user_id='northsnow') </ operate >
< userip > 192.168.22.206 </ userip >
< opdate > 2006-2-15 9:03:21 </ opdate >
</ log >
< log >
< username > 塞北的雪 </ username >
< operate > 注销 </ operate >
< userip > 192.168.22.205 </ userip >
< opdate > 2006-2-15 9:11:18 </ opdate >
</ log >
</ syslog >
<? xml-stylesheet type='text/xsl' href='logInfo.xsl' ?>
< syslog >
< log >
< username > 塞北的雪 </ username >
< operate > 登录 </ operate >
< userip > 192.168.22.205 </ userip >
< opdate > 2006-2-15 8:21:27 </ opdate >
</ log >
< log >
< username > 塞北的雪 </ username >
< operate > 删除用户(delete from sys_user where user_id='northsnow') </ operate >
< userip > 192.168.22.206 </ userip >
< opdate > 2006-2-15 9:03:21 </ opdate >
</ log >
< log >
< username > 塞北的雪 </ username >
< operate > 注销 </ operate >
< userip > 192.168.22.205 </ userip >
< opdate > 2006-2-15 9:11:18 </ opdate >
</ log >
</ syslog >
3 . 格式化xml文件输出的 xsl文件
<?
xml version="1.0"
?>
< xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl ="urn:schemas-microsoft-com:xslt" xmlns:user ="http://www.cccar.com.cn/"
exclude-result-prefixes ="msxsl user" >
<!-- localized strings -->
< xsl:variable name ='ColumnHeader_UserName'>用户</xsl:variable>
<xsl:variable name ='ColumnHeader_Time'>时间</xsl:variable>
<xsl:variable name ='ColumnHeader_Operate'>操作</xsl:variable>
<xsl:variable name ='ColumnHeader_Address'>IP地址</xsl:variable>
<!-- variables -- >
< xsl:variable name ='TableStyle'>background-color:#DAE6D8;font-family:Simsun, Verdana; font-size:75%; text-align:left; vertical-align:top</xsl:variable >
< xsl:variable name ='HeaderStyle'>background:a0b0a8;color:#000000;border-bottom:1 solid black;border-top:1 solid black</xsl:variable >
< msxsl:script language ="javascript" implements-prefix ="user" >
function xmlDateTime(nodelist) {
return Date.parse(nodelist.replace(/-/g,"/"));
}
</ msxsl:script >
< xsl:output omit-xml-declaration ="yes" />
< xsl:template match ="syslog" >
< html >
< head >
< title >
日志查看
</ title >
</ head >
< body style ='margin:10;background-color:#DAE6D8'>
<div align ="center" >
< table style ="{$TableStyle}" width ="100%" align ="center" cellspacing ='0'>
<thead >
< tr height ="23" >
< th width ="15%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_UserName" />
</ th >
< th width ="20%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_Time" />
</ th >
< th width ="50%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_Operate" />
</ th >
< th width ="15%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_Address" />
</ th >
</ tr >
</ thead >
< tbody style ='vertical-align:top'>
<tr >< td colspan ="4" height ="5" ></ td ></ tr >
< xsl:for-each select ="log" >
< xsl:sort order ='ascending' select ="user:xmlDateTime(string(opdate))" data-type ="number" />
< tr height ="23" >
< td valign ="bottom" >< xsl:value-of select ="username" /></ td >
< td valign ="bottom" >< xsl:value-of select ="opdate" /></ td >
< td valign ="bottom" >< xsl:value-of select ="operate" /></ td >
< td valign ="bottom" >< xsl:value-of select ="userip" /></ td >
</ tr >
< tr bgcolor ="#999999" >< td colspan ="4" height ="1" ></ td ></ tr >
</ xsl:for-each >
< tr >< td colspan ="4" align ="right" > 合计: < xsl:value-of select ="count(log)" /> 条 </ td ></ tr >
</ tbody >
</ table >
</ div >
</ body >
</ html >
</ xsl:template >
</ xsl:stylesheet >
< xsl:stylesheet version ="1.0" xmlns:xsl ="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl ="urn:schemas-microsoft-com:xslt" xmlns:user ="http://www.cccar.com.cn/"
exclude-result-prefixes ="msxsl user" >
<!-- localized strings -->
< xsl:variable name ='ColumnHeader_UserName'>用户</xsl:variable>
<xsl:variable name ='ColumnHeader_Time'>时间</xsl:variable>
<xsl:variable name ='ColumnHeader_Operate'>操作</xsl:variable>
<xsl:variable name ='ColumnHeader_Address'>IP地址</xsl:variable>
<!-- variables -- >
< xsl:variable name ='TableStyle'>background-color:#DAE6D8;font-family:Simsun, Verdana; font-size:75%; text-align:left; vertical-align:top</xsl:variable >
< xsl:variable name ='HeaderStyle'>background:a0b0a8;color:#000000;border-bottom:1 solid black;border-top:1 solid black</xsl:variable >
< msxsl:script language ="javascript" implements-prefix ="user" >
function xmlDateTime(nodelist) {
return Date.parse(nodelist.replace(/-/g,"/"));
}
</ msxsl:script >
< xsl:output omit-xml-declaration ="yes" />
< xsl:template match ="syslog" >
< html >
< head >
< title >
日志查看
</ title >
</ head >
< body style ='margin:10;background-color:#DAE6D8'>
<div align ="center" >
< table style ="{$TableStyle}" width ="100%" align ="center" cellspacing ='0'>
<thead >
< tr height ="23" >
< th width ="15%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_UserName" />
</ th >
< th width ="20%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_Time" />
</ th >
< th width ="50%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_Operate" />
</ th >
< th width ="15%" style ="{$HeaderStyle}" >
< xsl:value-of select ="$ColumnHeader_Address" />
</ th >
</ tr >
</ thead >
< tbody style ='vertical-align:top'>
<tr >< td colspan ="4" height ="5" ></ td ></ tr >
< xsl:for-each select ="log" >
< xsl:sort order ='ascending' select ="user:xmlDateTime(string(opdate))" data-type ="number" />
< tr height ="23" >
< td valign ="bottom" >< xsl:value-of select ="username" /></ td >
< td valign ="bottom" >< xsl:value-of select ="opdate" /></ td >
< td valign ="bottom" >< xsl:value-of select ="operate" /></ td >
< td valign ="bottom" >< xsl:value-of select ="userip" /></ td >
</ tr >
< tr bgcolor ="#999999" >< td colspan ="4" height ="1" ></ td ></ tr >
</ xsl:for-each >
< tr >< td colspan ="4" align ="right" > 合计: < xsl:value-of select ="count(log)" /> 条 </ td ></ tr >
</ tbody >
</ table >
</ div >
</ body >
</ html >
</ xsl:template >
</ xsl:stylesheet >