cari
Rumahpembangunan bahagian belakangTutorial XML/RSS在asp下通过xml打包网站文件的方法

今天在网上找了下用xml打包文件、文件夹之类的内容看了看,在本机上调试了下,感觉还挺有用处

这个方法可以把整个文件夹打包到xml文件中,把这个xml文件文件和解包文件放在一起后,运行解包文件就可以把原来的文件释放出来,这样我们就可以把网站打包上传到虚拟主机,再运行解包文件就可以了。我在本地测试之选择了少部分文件,不知在文件很多的情况执行效率如何。
    其实实现的思路也很简单,主要利用的是xml文件可以存放二进制数据的原理。有兴趣的朋友可以下载下面的附件研究下!!
解包文件

代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% Option Explicit %> 
<% On Error Resume Next %> 
<% Response.Charset="UTF-8" %> 
<% Server.ScriptTimeout=99999999 %>
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>脚本之家——文件解包程序_www.jb51.net</title> 
</head> 
<body> 
<% 
Dim strLocalPath 
&#39;得到当前文件夹的物理路径 
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=4 Then 
        If objXmlFile.parseError.errorCode = 0 Then 
            Set objNodeList = objXmlFile.documentElement.selectNodes("//folder/path") 
            Set objFSO = CreateObject("Scripting.FileSystemObject") 
                j=objNodeList.length-1 
                For i=0 To j 
                    If objFSO.FolderExists(strLocalPath & objNodeList(i).text)=False Then 
                        objFSO.CreateFolder(strLocalPath & objNodeList(i).text) 
                    End If 
                    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=0 To 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 
                        End With 
                    Set objStream = Nothing 
                Next 
            Set objNodeList = nothing 
        End If 
    End If 
Set objXmlFile = Nothing 
response.write "文件解包完毕" 
%> 
</body> 
</html>

pack.asp 打包文件

代码如下:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%> 
<% Option Explicit %> 
<% On Error Resume Next %> 
<% Response.Charset="UTF-8" %> 
<% Server.ScriptTimeout=99999999 %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>文件打包程序_脚本之家_www.jb51.net</title> 
</head> 
<body> 
<% 
Dim ZipPathDir,ZipPathFile 
Dim startime,endtime 
&#39;在此更改要打包文件夹的路径 
ZipPathDir = "D:\testasp\dictionary\xmlPacked\scrollColor"&#39; 
ZipPathFile = "update.xml" 
if right(ZipPathDir,1)<>"\" then ZipPathDir=ZipPathDir&"\" 
&#39;开始打包 
CreateXml(ZipPathFile) 
&#39;遍历目录内的所有文件以及文件夹 
sub LoadData(DirPath) 
    dim XmlDoc 
    dim fso            &#39;fso对象 
    dim objFolder      &#39;文件夹对象 
    dim objSubFolders  &#39;子文件夹集合 
    dim objSubFolder   &#39;子文件夹对象 
    dim objFiles       &#39;文件集合 
    dim objFile        &#39;文件对象 
    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)&#39;创建文件夹对象 
    Response.Write DirPath 
    Response.flush 
    Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM") 
    XmlDoc.load Server.MapPath(ZipPathFile) 
    XmlDoc.async=false 
    &#39;写入每个文件夹路径 
    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 
            for each 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 
                    &#39;================================================ 
                    &#39;写入文件的路径及文件内容 
                   set Xfile = XmlDoc.SelectSingleNode("//root").AppendChild(XmlDoc.CreateElement("file")) 
                   Set Xpath = Xfile.AppendChild(XmlDoc.CreateElement("path")) 
                       Xpath.text = replace(PathNameStr,ZipPathDir,"") 
                   &#39;创建文件流读入文件内容,并写入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" 
                       &#39;文件内容采用二制方式存放 
                       Xstream.dataType = "bin.base64" 
                       Xstream.nodeTypedValue = objStream.Read() 
                   set objStream=nothing 
                   set Xpath = nothing 
                   set Xstream = nothing 
                   set Xfile = nothing 
                  &#39;================================================ 
                end if 
            next 
    Response.Write "<p>" 
    XmlDoc.Save(Server.Mappath(ZipPathFile)) 
    set Xfpath = nothing 
    set Xfolder = nothing 
    set XmlDoc = nothing 
    &#39;创建的子文件夹对象 
    set objSubFolders=objFolder.Subfolders 
        &#39;调用递归遍历子文件夹 
        for each objSubFolder in objSubFolders 
            pathname = DirPath & objSubFolder.name & "\" 
            LoadData(pathname) 
        next 
    set objFolder=nothing 
    set objSubFolders=nothing 
    set fso=nothing 
end sub 
&#39;创建一个空的XML文件,为写入文件作准备 
sub CreateXml(FilePath) 
    &#39;程序开始执行时间 
    startime=timer() 
    dim XmlDoc,Root 
    Set XmlDoc = Server.CreateObject("Microsoft.XMLDOM") 
        XmlDoc.async = False 
        Set Root = XmlDoc.createProcessingInstruction("xml","version=&#39;1.0&#39; encoding=&#39;UTF-8&#39;") 
        XmlDoc.appendChild(Root) 
        XmlDoc.appendChild(XmlDoc.CreateElement("root")) 
        XmlDoc.Save(Server.MapPath(FilePath)) 
        Set Root = Nothing 
    Set XmlDoc = Nothing 
    LoadData(ZipPathDir) 
    &#39;程序结束时间 
    endtime=timer() 
    response.Write("页面执行时间:" & FormatNumber((endtime-startime),3) & "秒") 
end sub 
%> 
</body> 
</html>


Atas ialah kandungan terperinci 在asp下通过xml打包网站文件的方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Membuat Dokumen RSS: Tutorial Langkah demi LangkahMembuat Dokumen RSS: Tutorial Langkah demi LangkahApr 13, 2025 am 12:10 AM

Langkah -langkah untuk membuat dokumen RSS adalah seperti berikut: 1. Tulis dalam format XML, dengan elemen akar, termasuk unsur -unsur. 2. Tambah, dan sebagainya. Unsur untuk menerangkan maklumat saluran. 3. Tambah elemen, masing -masing mewakili kemasukan kandungan, termasuk ,,,,,,,,,,,. 4. Secara pilihan menambah dan elemen untuk memperkayakan kandungan. 5. Pastikan format XML betul, gunakan alat dalam talian untuk mengesahkan, mengoptimumkan prestasi dan menyimpan kandungan yang dikemas kini.

Peranan XML dalam RSS: asas kandungan sindiketPeranan XML dalam RSS: asas kandungan sindiketApr 12, 2025 am 12:17 AM

Peranan teras XML dalam RSS adalah untuk menyediakan format data standard dan fleksibel. 1. Ciri -ciri bahasa dan markup XML menjadikannya sesuai untuk pertukaran data dan penyimpanan. 2. RSS menggunakan XML untuk membuat format piawai untuk memudahkan perkongsian kandungan. 3. Permohonan XML dalam RSS termasuk unsur -unsur yang menentukan kandungan suapan, seperti tajuk dan tarikh pelepasan. 4. Kelebihan termasuk penyeragaman dan skalabiliti, dan cabaran termasuk keperluan sintaks dokumen dan ketat. 5. Amalan terbaik termasuk mengesahkan kesahihan XML, memastikan ia mudah, menggunakan CDATA, dan sentiasa mengemas kini.

Dari XML ke Kandungan Boleh Dibaca: Demystifying RSS FeedDari XML ke Kandungan Boleh Dibaca: Demystifying RSS FeedApr 11, 2025 am 12:03 AM

Rssfeedsarexmldocumentsedforcontentaggregationanddistribution.totransformthemintoreadableContent: 1) ParsethexmlusingLibrariesLikeFeedParserinpython.2)

Adakah terdapat alternatif RSS berdasarkan JSON?Adakah terdapat alternatif RSS berdasarkan JSON?Apr 10, 2025 am 09:31 AM

JSONFEED adalah alternatif RSS berasaskan JSON yang mempunyai kesederhanaan kelebihan dan kemudahan penggunaannya. 1) JSONFEED menggunakan format JSON, yang mudah dihasilkan dan dihuraikan. 2) Ia menyokong generasi dinamik dan sesuai untuk pembangunan web moden. 3) Menggunakan JSONFEED boleh meningkatkan kecekapan pengurusan kandungan dan pengalaman pengguna.

Alat Dokumen RSS: Membina, Mengesahkan, dan Menerbitkan SuapanAlat Dokumen RSS: Membina, Mengesahkan, dan Menerbitkan SuapanApr 09, 2025 am 12:10 AM

Bagaimana untuk membina, mengesahkan dan menerbitkan RSSFeeds? 1. Membina: Gunakan skrip python untuk menghasilkan RSSFeed, termasuk Tajuk, Pautan, Keterangan dan Tarikh Siaran. 2. Pengesahan: Gunakan feedvalidator.org atau skrip Python untuk memeriksa sama ada RSSFEED mematuhi piawaian RSS2.0. 3. Terbitkan: Muat naik fail RSS ke pelayan, atau gunakan Flask untuk menjana dan menerbitkan RSSFeed secara dinamik. Melalui langkah -langkah ini, anda boleh mengurus dan berkongsi kandungan dengan berkesan.

Mengamankan suapan XML/RSS anda: Senarai Semak Keselamatan KomprehensifMengamankan suapan XML/RSS anda: Senarai Semak Keselamatan KomprehensifApr 08, 2025 am 12:06 AM

Kaedah untuk memastikan keselamatan XML/RSSFEEDS termasuk: 1. Pengesahan data, 2. Transmisi yang disulitkan, 3. Kawalan akses, 4. Log dan pemantauan. Langkah -langkah ini melindungi integriti dan kerahsiaan data melalui protokol keselamatan rangkaian, algoritma penyulitan data dan mekanisme kawalan akses.

Soalan & Jawapan Temuduga XML/RSS: Tahap kepakaran andaSoalan & Jawapan Temuduga XML/RSS: Tahap kepakaran andaApr 07, 2025 am 12:19 AM

XML adalah bahasa markup yang digunakan untuk menyimpan dan memindahkan data, dan RSS adalah format berasaskan XML yang digunakan untuk menerbitkan kandungan yang sering dikemas kini. 1 1) XML menerangkan struktur data melalui tag dan atribut, 2) RSS mentakrifkan penerbitan tag khusus dan kandungan yang dilanggan, 3) XML boleh dibuat dan dihuraikan menggunakan module python. Isu pengekodan, yang boleh disahkan oleh XMLLINT, 7) Pemprosesan fail XML yang besar dengan parser SAX dapat mengoptimumkan prestasi.

Tutorial XML/RSS Advanced: Ace Temuduga Teknikal Anda SeterusnyaTutorial XML/RSS Advanced: Ace Temuduga Teknikal Anda SeterusnyaApr 06, 2025 am 12:12 AM

XML adalah bahasa markup untuk penyimpanan dan pertukaran data, dan RSS adalah format berasaskan XML untuk menerbitkan kandungan yang dikemas kini. 1. XML mentakrifkan struktur data, sesuai untuk pertukaran data dan penyimpanan. 2.RSS digunakan untuk langganan kandungan dan menggunakan perpustakaan khas apabila parsing. 3. Apabila parsing XML, anda boleh menggunakan DOM atau SAX. Apabila menjana XML dan RSS, unsur -unsur dan atribut mesti ditetapkan dengan betul.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

Alat panas

Dreamweaver Mac版

Dreamweaver Mac版

Alat pembangunan web visual

MinGW - GNU Minimalis untuk Windows

MinGW - GNU Minimalis untuk Windows

Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Penyesuai Pelayan SAP NetWeaver untuk Eclipse

Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).