一个用xml存储日志信息的程序
来源:互联网 发布:剑灵男剑士捏脸数据图 编辑:程序博客网 时间:2024/06/05 08:14
本程序中利用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>
- 一个用xml存储日志信息的程序
- 用注册表键存储用户程序的信息
- 用XML代替程序中信息显示的硬编码
- 一个用JAVA实现的日志备份程序
- 用ASP.NET写一个发送ICQ信息的程序
- 用ASP.NET写一个发送ICQ信息的程序
- 用ASP.NET写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用ASP.Net写一个发送ICQ信息的程序
- 用一个对象封装程序的返回信息
- 自己编写的一个程序:读取XML格式的日志文件,并以一定的数据写入数据库中
- 针对 .NET 开发人员的存储过程评估
- C语言编程,从菜鸟到高手
- ASP中的区分大小写与不区分大小写
- 什么是命运
- 我所用到的有用的网址!!!
- 一个用xml存储日志信息的程序
- 基于prototype.js验证框架(validation.js)的三个应用
- 终于无债一身清了,庆祝一下
- 在linux和windows下做c语言的区别
- [Fedora Core 6] NTFS分区访问
- 中美民航协议促快递市场裂变 EMS垄断难保
- dig命令详解
- sql server 2000 以前的某个程序安装已在安装计算机上创建挂起的文件操作解决办法
- 批量创建Notes数据库示例