当前位置: 首页 > 图文教程 > 网络编程 > ASP > asp源码打包成xml的工具

ASP
javascript asp教程More About Recordsets
javascript asp教程添加和修改
javascript asp教程 日期相关
简单的ASP分页代码(测试正确)
用ASP打开远端MDB文件的方法
asp下同一空间多绑多哥域名的方法
asp下实现替换远程文件为本地文件并保存远程文件的代码
asp,VBscript语法错误,史上最全最详细最精确
讲解ASP方面的知识比较全的asp学习教程
给万博系统的新闻系统增加分页功能[配有详细说明]
在asp中通过vbs类实现rsa加密与解密的代码
一段在asp中加密与解密对应的函数
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
用ASP VBS xmlhttp adodbstream下载和保存图片的代码
厉害的用Asp获取Dll加密新闻内容
用正则和xmlHttp实现的asp小偷程序
ASP之简化创建关闭记录集对象并创建使用简单的MSSQL存储过程
ASP中怎么实现SQL数据库备份、恢复!
asp中实现随机分组程序的代码
asp之字符串操作函数

ASP 中的 asp源码打包成xml的工具


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 50 ::
收藏到网摘: n/a

柳永法 xml asp源码打包工具,打包成单独的xml文件,可以在服务器上直接安装 下边这个存为Pack.asp,打包文件时运行
复制代码 代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%OptionExplicit%>
<%OnErrorResumeNext%>
<% Response.Charset="UTF-8"%>
<% Server.ScriptTimeout=99999999%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>文件打包程序</title>
</head>
<body>
<%

Dim ZipPathDir, ZipPathFile
Dim startime, endtime
'在此更改要打包文件夹的路径
ZipPathDir ="F:\www.yongfa365.com"'
ZipPathFile ="update.xml"
If Right(ZipPathDir,1)<>"\"Then ZipPathDir = ZipPathDir&"\"
'开始打包
CreateXml(ZipPathFile)
'遍历目录内的所有文件以及文件夹
Sub LoadData(DirPath)
Dim XmlDoc
Dim fso 'fso对象
Dim objFolder '文件夹对象
Dim objSubFolders '子文件夹集合
Dim objSubFolder '子文件夹对象
Dim objFiles '文件集合
Dim objFile '文件对象
Dim objStream
Dim pathname, TextStream, pp, Xfolder, Xfpath, Xfile, Xpath, Xstream
Dim PathNameStr
response.Write("=========="&DirPath&"==========<br>")
Set fso = server.CreateObject("scripting.filesystemobject")
Set objFolder = fso.GetFolder(DirPath)'创建文件夹对象
Response.Write DirPath
Response.flush
Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
XmlDoc.load Server.MapPath(ZipPathFile)
XmlDoc.async =False
'写入每个文件夹路径
Set Xfolder = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("folder"))
Set Xfpath = Xfolder.AppendChild(XmlDoc.CreateElement("path"))
Xfpath.text = Replace(DirPath, ZipPathDir,"")
Set objFiles = objFolder.Files
ForEach objFile in objFiles
If LCase(DirPath & objFile.Name)<> LCase(Request.ServerVariables("PATH_TRANSLATED"))Then
Response.Write "---<br/>"
PathNameStr = DirPath &""& objFile.Name
Response.Write PathNameStr &""
Response.flush
'================================================
'写入文件的路径及文件内容
Set Xfile = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file"))
Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path"))
Xpath.text = Replace(PathNameStr, ZipPathDir,"")
'创建文件流读入文件内容,并写入XML文件中
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Type=1
objStream.Open()
objStream.LoadFromFile(PathNameStr)
objStream.position =0
Set Xstream = Xfile.AppendChild(XmlDoc.CreateElement("stream"))
Xstream.SetAttribute "xmlns:dt","urn:schemas-microsoft-com:datatypes"
'文件内容采用二制方式存放
Xstream.dataType ="bin.base64"
Xstream.nodeTypedValue = objStream.Read()
Set objStream =Nothing
Set Xpath =Nothing
Set Xstream =Nothing
Set Xfile =Nothing
'================================================
EndIf
Next
Response.Write "<p>"
XmlDoc.Save(Server.Mappath(ZipPathFile))
Set Xfpath =Nothing
Set Xfolder =Nothing
Set XmlDoc =Nothing
'创建的子文件夹对象
Set objSubFolders = objFolder.SubFolders
'调用递归遍历子文件夹
ForEach objSubFolder in objSubFolders
pathname = DirPath & objSubFolder.Name &"\"
LoadData(pathname)
Next
Set objFolder =Nothing
Set objSubFolders =Nothing
Set fso =Nothing
EndSub

'创建一个空的XML文件,为写入文件作准备
Sub CreateXml(FilePath)
'程序开始执行时间
startime = Timer()
Dim XmlDoc, Root
Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM")
XmlDoc.async =False
Set Root = XmlDoc.createProcessingInstruction("xml","version='1.0' encoding='UTF-8'")
XmlDoc.appendChild(Root)
XmlDoc.appendChild(XmlDoc.CreateElement("root"))
XmlDoc.Save(Server.MapPath(FilePath))
Set Root =Nothing
Set XmlDoc =Nothing
LoadData(ZipPathDir)
'程序结束时间
endtime = Timer()
response.Write("页面执行时间:"& FormatNumber((endtime - startime),3)&"秒")
EndSub

%>
</body>
</html>

下边这个存为Install.asp,安装XML打包文件时运行
复制代码 代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%OptionExplicit%>
<%OnErrorResumeNext%>
<% Response.Charset="UTF-8"%>
<% Server.ScriptTimeout=99999999%>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/>
<title>文件解包程序</title>
</head>
<body>
<%
Dim strLocalPath
'得到当前文件夹的物理路径
strLocalPath = Left(Request.ServerVariables("PATH_TRANSLATED"), InStrRev(Request.ServerVariables("PATH_TRANSLATED"),"\"))
Dim objXmlFile
Dim objNodeList
Dim objFSO
Dim objStream
Dim i, j
Set objXmlFile = Server.CreateObject("Microsoft.XMLDOM")
objXmlFile.load(Server.MapPath("update.xml"))
If objXmlFile.readyState =4Then
If objXmlFile.parseError.errorCode =0Then
Set objNodeList = objXmlFile.documentElement.selectNodes("//folder/path")
Set objFSO = CreateObject("Scripting.FileSystemObject")
j = objNodeList.Length -1
For i =0To j
If objFSO.FolderExists(strLocalPath & objNodeList(i).text)=FalseThen
objFSO.CreateFolder(strLocalPath & objNodeList(i).text)
EndIf
Response.Write "创建目录"& objNodeList(i).text &"<br/>"
Response.Flush
Next
Set objFSO =Nothing
Set objNodeList =Nothing
Set objNodeList = objXmlFile.documentElement.selectNodes("//file/path")
j = objNodeList.Length -1
For i =0To j
Set objStream = CreateObject("ADODB.Stream")
With objStream
.Type=1
.Open
.Write objNodeList(i).nextSibling.nodeTypedvalue
.SaveToFile strLocalPath & objNodeList(i).text,2
Response.Write "释放文件"& objNodeList(i).text &"<br/>"
Response.Flush
.Close
EndWith
Set objStream =Nothing
Next
Set objNodeList =Nothing
EndIf
EndIf
Set objXmlFile =Nothing
response.Write "文件解包完毕"
%>
</body>
</html>