{"id":166,"date":"2008-11-30T02:37:47","date_gmt":"2008-11-29T18:37:47","guid":{"rendered":""},"modified":"2014-02-27T22:57:28","modified_gmt":"2014-02-27T14:57:28","slug":"xml%e7%bc%93%e5%ad%98%e6%8a%80%e6%9c%af%e6%9e%84%e5%bb%ba%e9%ab%98%e6%80%a7%e8%83%bdweb%e7%ab%99%e7%82%b9","status":"publish","type":"post","link":"http:\/\/www.xiaoyebailong.com\/index.php\/2008\/11\/30\/166.htm","title":{"rendered":"xml\u7f13\u5b58\u6280\u672f\u6784\u5efa\u9ad8\u6027\u80fdweb\u7ad9\u70b9"},"content":{"rendered":"<p>\u6253\u9020\u4e00\u4e2a\u9ad8\u6027\u80fd\u7a33\u5b9a\u7684web\u7ad9\u70b9\u4e00\u76f4\u662f\u7ad9\u957f\u548c\u7a0b\u5e8f\u5458\u7684\u68a6\u60f3\uff0c\u672c\u6587\u7528\u4f5c\u8005\u7684\u4e00\u6b21\u4eb2\u8eab\u7ecf\u5386\u7684\u6765\u8bf4\u8bf4\u5982\u4f55\u5229\u7528xml\u7f13\u5b58\u6280\u672f\u5b9e\u73b0\u7ad9\u70b9\u7684\u9ad8\u6027\u80fd\u3002\u6211\u662f\u4ece\u4eca\u5e74\u5f00\u59cb\u505a138\u624b\u673a\u4e3b\u9898\u7f51\u7684\uff0c\u91c7\u7528SQL2000\u505a\u4e3a\u6570\u636e\u5e93\uff0c\u5f00\u53d1\u8bed\u8a00\u7528\u7684\u662fAsp\uff0c\u67e5\u8be2\u7684\u65f6\u5019\u90fd\u662f\u52a8\u6001\u67e5\u8be2\uff0c\u76f4\u63a5\u7528like %\u7684\u65b9\u5f0f\uff0c\u90a3\u4e2a\u65f6\u5019\u53cd\u6b63\u4e00\u5929\u7684\u8bbf\u95ee\u91cf\u5c0f\uff0c\u540c\u65f6\u5728\u7ebf\u7684\u65f6\u5019\u4e5f\u5c31\u51e0\u5341\u4e2a\u4eba\u800c\u5df2\uff0c\u6240\u4ee5\u670d\u52a1\u5668\u4e5f\u5c31\u80fd\u80dc\u4efb\u8981\u6c42\uff0c\u968f\u7740\u8bbf\u95ee\u91cf\u6162\u6162\u589e\u52a0\uff0c\u5f53\u540c\u65f6\u5728\u7ebf\u8fbe\u5230\u51e0\u767e\u4eba\u65f6\uff0c\u6b64\u65f6\u670d\u52a1\u5668\u5f00\u59cb\u4e0d\u582a\u91cd\u8d1f\uff0cCPU\u5e38\u5e38\u8fbe\u5230100%\u4e0d\u964d\uff0c\u7f51\u9875\u6253\u5f00\u901f\u5ea6\u4e5f\u8d85\u7ea7\u6162\uff0c\u4e00\u4e2a\u67e5\u8be2\u9875\u9762\u9700\u8981\u51e0\u79d2\u949f\u751a\u81f3\u66f4\u957f\uff0c\u4e8e\u662f\u6211\u5f00\u59cb\u8003\u8651\u4f18\u5316\u7a0b\u5e8f\u548c\u6570\u636e\u5e93\uff0c\u6570\u636e\u5e93\u5efa\u7acb\u7d22\u5f15\uff0c\u4e0d\u662f\u5f88\u7406\u60f3\uff0c\u56e0\u4e3a\u7528\u7684\u662flike &#8216;% \u8fd9\u79cd\u65b9\u5f0f\uff0c\u4e8e\u662f\u6211\u60f3\u5230\u4e86\u7f13\u5b58\uff0c\u800cxml\u672c\u8eab\u7684\u7279\u70b9\u51b3\u5b9a\u4e86\u4ed6\u975e\u5e38\u9002\u5408\u505a\u6570\u636e\u5e93\u7684\u7f13\u5b58\uff0c\u597d\u4e1c\u897f\u4e0d\u6562\u72ec\u4eab\uff0c\u7279\u53d1\u5e03\u51fa\u6765\uff0c\u4ee5\u4fbf\u540c\u884c\u4ea4\u6d41\uff0c\u5171\u540c\u8fdb\u6b65\u3002<br \/>\n\u5b9e\u73b0\u7684\u601d\u8def\u662f\u8fd9\u6837\u7684\uff1a\u7a0b\u5e8f\u8bfb\u53d6\u4fe1\u606f\u65f6\uff0c\u5148\u5224\u65ad\u662f\u5426\u7f13\u5b58\u4e86xml\u6570\u636e\uff0c\u5982\u679c\u6709\uff0c\u5219\u76f4\u63a5\u4ecexml\u4e2d\u8bfb\u53d6\u4fe1\u606f\uff0c\u5426\u5219\u4ece\u6570\u636e\u5e93\u4e2d\u8bfb\u53d6\uff0c\u5e76\u5c06\u6b64\u6b21\u7ed3\u679c\u751f\u6210xml\u6587\u4ef6\uff0c\u4ee5\u4fbf\u4ee5\u540e\u8c03\u7528\uff0c\u52a0\u5feb\u901f\u5ea6\uff0c\u540c\u65f6\u5224\u65adxml\u7f13\u5b58\u6587\u4ef6\u662f\u5426\u8fc7\u671f\uff0c\u5982\u679c\u8fc7\u671f\u5219\u9700\u8981\u91cd\u65b0\u751f\u6210xml\u3002\u4e0b\u9762\u662f\u5177\u4f53\u7684\u4ee3\u7801\u3002<\/p>\n<p>xmlcachecls.asp<br \/>\n&lt;%<br \/>\nRem xml\u6570\u636e\u7f13\u5b58\u7c7b<br \/>\n&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n&#8216;\u8f6c\u8f7d\u7684\u65f6\u5019\u8bf7\u4fdd\u7559\u7248\u6743\u4fe1\u606f<br \/>\n&#8216;\u4f5c\u8005:walkman<br \/>\n&#8216;\u7f51\u5740:\u624b\u673a\u4e3b\u9898 <a rel=\"nofollow\" href=\"http:\/\/www.shouji138.com\">http:\/\/www.shouji138.com<\/a><br \/>\n&#8216;\u7248\u672c:ver1.0<br \/>\n&#8216;\u6b22\u8fce\u5404\u4f4d\u4ea4\u6d41\u8fdb\u6b65<br \/>\n&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>Class XmlCacheCls<\/p>\n<p>&nbsp;Rem \u79c1\u6709\u53d8\u91cf\u5b9a\u4e49<br \/>\n&nbsp;Private m_CacheTime&nbsp; &#8216;\u7f13\u5b58\u65f6\u95f4\uff0c\u5355\u4f4d\u79d2<br \/>\n&nbsp;Private m_PageSize&nbsp; &#8216;\u6bcf\u9875\u5927\u5c0f<br \/>\n&nbsp;Private m_CachePageNum &#8216;xml\u7f13\u5b58\u9875\u5927\u5c0f<br \/>\n&nbsp;Private m_XmlFile&nbsp; &#8216;xml\u8def\u5f84\uff0c\u7528\u7edd\u5bf9\u5730\u5740,\u4e0d\u9700\u8981\u52a0\u6269\u5c55\u540d<br \/>\n&nbsp;Private m_Sql&nbsp;&nbsp; &#8216;SQL\u8bed\u53e5<br \/>\n&nbsp;Private m_TableName&nbsp; &#8216;\u8868\u540d\u6216\u8005\u89c6\u56fe\u540d<br \/>\n&nbsp;Private m_Columns&nbsp; &#8216;\u5217\u540d \u7528,\u9694\u5f00<br \/>\n&nbsp;Private m_CurPage&nbsp; &#8216;\u5f53\u524d\u9875<br \/>\n&nbsp;Private m_CacheType&nbsp; &#8216;\u7f13\u5b58\u7c7b\u578b\uff1a1,\u5217\u8868 2,\u8be6\u60c5<br \/>\n&nbsp;Private m_DataConn&nbsp; &#8216;\u6570\u636e\u6e90,\u5fc5\u987b\u5df2\u7ecf\u6253\u5f00<br \/>\n&nbsp;Private m_QueryType&nbsp; &#8216;\u67e5\u8be2\u7c7b\u578b\uff1a1,\u76f4\u63a5\u7528sql 2,\u7528\u5b58\u50a8\u8fc7\u7a0b<\/p>\n<p>&nbsp;Private m_SQLArr&nbsp; &#8216;\u8fd4\u56de\u7684\u6570\u636e\u6570\u7ec4<br \/>\n&nbsp;Private m_RecordCount<br \/>\n&nbsp;<br \/>\n&nbsp;<br \/>\n&nbsp;Rem \u516c\u5171\u5c5e\u6027<\/p>\n<p>&nbsp;&#8216;\u7f13\u5b58\u65f6\u95f4<br \/>\n&nbsp;Public Property Let&nbsp; CacheTime(v)<br \/>\n&nbsp; m_CacheTime = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; CacheTime<br \/>\n&nbsp; CacheTime = m_CacheTime <br \/>\n&nbsp;End Property<\/p>\n<p>\n&nbsp;&#8216;\u6bcf\u9875\u5927\u5c0f<br \/>\n&nbsp;Public Property Let&nbsp; PageSize(v)<br \/>\n&nbsp; m_PageSize = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; PageSize<br \/>\n&nbsp; PageSize = m_PageSize <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;&#8216;xml\u7f13\u5b58\u9875\u5927\u5c0f<br \/>\n&nbsp;Public Property Let&nbsp; CachePageNum(v)<br \/>\n&nbsp; m_CachePageNum = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; CachePageNum<br \/>\n&nbsp; CachePageNum = m_CachePageNum <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;&#8216;xml\u8def\u5f84\uff0c\u7528\u7edd\u5bf9\u5730\u5740<br \/>\n&nbsp;Public Property Let&nbsp; XmlFile(v)<br \/>\n&nbsp; m_XmlFile = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; XmlFile<br \/>\n&nbsp; XmlFile = m_XmlFile <br \/>\n&nbsp;End Property<\/p>\n<p>\n&nbsp;&#8216;xml\u8def\u5f84\uff0c\u7528\u7edd\u5bf9\u5730\u5740<br \/>\n&nbsp;Public Property Let&nbsp; Sql(v)<br \/>\n&nbsp; m_Sql = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; Sql <br \/>\n&nbsp; Sql = m_Sql <br \/>\n&nbsp;End Property<\/p>\n<p>\n&nbsp;&#8216;\u8868\u540d\u6216\u8005\u89c6\u56fe\u540d<br \/>\n&nbsp;Public Property Let&nbsp; TableName(v)<br \/>\n&nbsp; m_TableName = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; TableName <br \/>\n&nbsp; TableName = m_TableName <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;&#8216;\u5217\u540d \u7528,\u9694\u5f00<br \/>\n&nbsp;Public Property Let&nbsp; Columns(v)<br \/>\n&nbsp; m_Columns = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; Columns <br \/>\n&nbsp; Columns = m_Columns <br \/>\n&nbsp;End Property<\/p>\n<p>\n&nbsp;&#8216;\u5f53\u524d\u9875<br \/>\n&nbsp;Public Property Let&nbsp; CurPage(v)<br \/>\n&nbsp; m_CurPage = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; CurPage <br \/>\n&nbsp; CurPage = m_CurPage <br \/>\n&nbsp;End Property<\/p>\n<p>\n&nbsp;<br \/>\n&nbsp;&#8216;\u7f13\u5b58\u7c7b\u578b\uff1a1,\u5217\u8868 2,\u8be6\u60c5<br \/>\n&nbsp;Public Property Let&nbsp; CacheType(v)<br \/>\n&nbsp; m_CacheType = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; CacheType <br \/>\n&nbsp; CacheType = m_CacheType <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;&#8216;\u7f13\u5b58\u7c7b\u578b\uff1a1,\u5217\u8868 2,\u8be6\u60c5<br \/>\n&nbsp;Public Property Set&nbsp; Conn(v)<br \/>\n&nbsp; Set m_DataConn = v <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;Public Property Get&nbsp; Conn <br \/>\n&nbsp; Conn = m_DataConn <br \/>\n&nbsp;End Property<\/p>\n<p>\n&nbsp;&#8216;\u8fd4\u56de\u8bb0\u5f55\u603b\u6570<br \/>\n&nbsp;Public Property Get&nbsp; RecordCount <br \/>\n&nbsp; RecordCount = m_RecordCount <br \/>\n&nbsp;End Property<\/p>\n<p>&nbsp;&#8216;\u8fd4\u56de\u8bb0\u5f55\u6570\u7ec4<br \/>\n&nbsp;Public Property Get&nbsp; SQLArr <br \/>\n&nbsp; SQLArr = m_SQLArr <br \/>\n&nbsp;End Property<\/p>\n<p>\n&nbsp;Rem \u516c\u5171\u65b9\u6cd5 \u8bfb\u53d6\u6570\u636e<br \/>\n&nbsp;Public Function ReadData<br \/>\n&nbsp; If m_CacheType = 1 Then <br \/>\n&nbsp;&nbsp; ReadListAndSearchData<br \/>\n&nbsp; Else <br \/>\n&nbsp;&nbsp; ReadContentData<br \/>\n&nbsp; End If <br \/>\n&nbsp;End Function <br \/>\n&nbsp;<br \/>\n&nbsp;Rem \u8bfb\u53d6\u8be6\u60c5\u4fe1\u606f<br \/>\n&nbsp;Private Function ReadContentData<br \/>\n&nbsp; Dim xmlfile<br \/>\n&nbsp; xmlfile = m_XmlFile<br \/>\n&nbsp; If FSOExistsFile(xmlfile) Then &#8216;\u5b58\u5728xml\u7f13\u5b58\uff0c\u76f4\u63a5\u4ecexml\u4e2d\u8bfb\u53d6<br \/>\n&nbsp;&nbsp; ReadContentDataFromXml xmlfile<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; ReadContentDataFromDB<br \/>\n&nbsp; End If <br \/>\n&nbsp;End Function <br \/>\n&nbsp;<br \/>\n&nbsp;Rem \u4ecexml\u6587\u4ef6\u8bfb\u53d6\u8be6\u60c5\u4fe1\u606f<br \/>\n&nbsp;Private Function ReadContentDataFromXml(xmlfile)<br \/>\n&nbsp; Dim SQLARR()<br \/>\n&nbsp; Dim XmlDoc<br \/>\n&nbsp; Set XmlDoc = Server.CreateObject(&quot;msxml2.FreeThreadedDOMDocument.3.0&quot;)<br \/>\n&nbsp; XmlDoc.Load xmlfile <br \/>\n&nbsp; Dim itemslength,itemsi<br \/>\n&nbsp; itemslength = XmlDoc.documentElement.childNodes.length<\/p>\n<p>&nbsp; For itemsi=0 To itemslength-1<br \/>\n&nbsp;&nbsp; ReDim Preserve SQLARR(itemslength-1,0)<br \/>\n&nbsp;&nbsp; SQLARR(itemsi,0) = XmlDoc.documentElement.childNodes(itemsi).text<br \/>\n&nbsp; Next <br \/>\n&nbsp; Set XmlDoc = Nothing <br \/>\n&nbsp; m_SQLArr = SQLArr<br \/>\n&nbsp;End Function <br \/>\n&nbsp;<\/p>\n<p>&nbsp;Rem \u4eceDb\u4e2d\u8bfb\u53d6\u8be6\u60c5\u4fe1\u606f<br \/>\n&nbsp;Private Function ReadContentDataFromDB()<br \/>\n&nbsp; Dim rs<br \/>\n&nbsp; Dim SQLARR<br \/>\n&nbsp; Set rs = m_DataConn.execute(m_sql)<br \/>\n&nbsp; IF Not Rs.eof Then<br \/>\n&nbsp;&nbsp; SQLArr=Rs.GetRows(1)<br \/>\n&nbsp;&nbsp; rs.close<br \/>\n&nbsp;&nbsp; Set rs = Nothing<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; rs.close<br \/>\n&nbsp;&nbsp; Set rs = Nothing<br \/>\n&nbsp;&nbsp; Exit Function <br \/>\n&nbsp; End If <br \/>\n&nbsp; m_SQLArr = SQLArr<br \/>\n&nbsp;End Function<\/p>\n<p>\n&nbsp;Rem \u8bfb\u53d6\u5217\u8868\u6570\u636e<br \/>\n&nbsp;Private Function ReadListAndSearchData<br \/>\n&nbsp; Dim sPagesize,TotalPage,CurPage,TotalRec<br \/>\n&nbsp; sPagesize = m_PageSize * m_CachePageNum<\/p>\n<p>&nbsp; m_CurPage = CLng(m_CurPage)<br \/>\n&nbsp; <br \/>\n&nbsp; If m_CurPage Mod m_CachePageNum = 0 Then <br \/>\n&nbsp;&nbsp; CurPage = m_CurPage\/m_CachePageNum<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; CurPage = int(clng(m_CurPage)\/m_CachePageNum)+1<br \/>\n&nbsp; End If<\/p>\n<p>&nbsp; Dim xmlfile<br \/>\n&nbsp; xmlfile = getXmlFileName(CurPage)<br \/>\n&nbsp; If FSOExistsFile(xmlfile) Then &#8216;\u5b58\u5728xml\u7f13\u5b58\uff0c\u76f4\u63a5\u4ecexml\u4e2d\u8bfb\u53d6<br \/>\n&nbsp;&nbsp; ReadListAndSearchDataFromXml xmlfile<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; ReadListAndSearchDataFromDB<br \/>\n&nbsp; End If <br \/>\n&nbsp;End Function<\/p>\n<p>&nbsp;Rem \u4ecexml\u4e2d\u8bfb\u5217\u8868\u6570\u636e<br \/>\n&nbsp;Private Function ReadListAndSearchDataFromXml(xmlfile)<br \/>\n&nbsp; Dim SQLARR()<br \/>\n&nbsp; Dim XmlDoc<br \/>\n&nbsp; Set XmlDoc = Server.CreateObject(&quot;msxml2.FreeThreadedDOMDocument.3.0&quot;)<br \/>\n&nbsp; XmlDoc.Load xmlfile <br \/>\n&nbsp; Dim totalrecont<br \/>\n&nbsp; totalrecont = XmlDoc.documentElement.selectSingleNode(&quot;totalrec&quot;).text<br \/>\n&nbsp; m_RecordCount = totalrecont<br \/>\n&nbsp; Dim TotalRec<br \/>\n&nbsp; TotalRec = m_RecordCount<br \/>\n&nbsp; If totalrecont = 0 Then <br \/>\n&nbsp;&nbsp; Set XmlDoc = Nothing<br \/>\n&nbsp;&nbsp; m_SQLArr = SQLARR<br \/>\n&nbsp;&nbsp; Exit Function <br \/>\n&nbsp; End If<\/p>\n<p>&nbsp; Dim TotalPage,curpage<br \/>\n&nbsp; curpage = m_CurPage<br \/>\n&nbsp; If m_CurPage Mod m_CachePageNum = 0 Then <br \/>\n&nbsp;&nbsp; CurPage = m_CurPage\/m_CachePageNum<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; CurPage = int(clng(m_CurPage)\/m_CachePageNum)+1<br \/>\n&nbsp; End If<\/p>\n<p>&nbsp; If TotalRec Mod m_CachePageNum =0 Then <br \/>\n&nbsp;&nbsp; TotalPage = totalrecont\/m_CachePageNum<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; TotalPage = int(clng(totalrecont)\/m_CachePageNum)+1<br \/>\n&nbsp; End If <br \/>\n&nbsp; <br \/>\n&nbsp; If curpage&gt;TotalPage Then curpage=TotalPage<br \/>\n&nbsp; Dim starti<br \/>\n&nbsp; Dim startn<br \/>\n&nbsp; startn = m_curpage &#8211; (curpage-1) * m_CachePageNum<br \/>\n&nbsp; Rem \u8ba1\u7b97\u5f00\u59cb\u4f4d\u7f6e<br \/>\n&nbsp; starti = (startn-1) * m_pagesize<br \/>\n&nbsp; Dim items,item<br \/>\n&nbsp; Set items = XmlDoc.documentElement.SelectNodes(&quot;item&quot;)<br \/>\n&nbsp; Dim i<br \/>\n&nbsp; Dim num<br \/>\n&nbsp; Dim length<br \/>\n&nbsp; length = items.length<br \/>\n&nbsp; num = 0<br \/>\n&nbsp; For i = starti To m_PageSize + starti -1<br \/>\n&nbsp;&nbsp; If i &gt;=length Then Exit For <br \/>\n&nbsp;&nbsp; Set item = items(i)<br \/>\n&nbsp;&nbsp; Dim attrlength<br \/>\n&nbsp;&nbsp; attrlength = item.attributes.length<br \/>\n&nbsp;&nbsp; ReDim Preserve SQLARR(attrlength,num)<br \/>\n&nbsp;&nbsp; Dim Attribute<br \/>\n&nbsp;&nbsp; Dim Attributei<br \/>\n&nbsp;&nbsp; Attributei = 0<br \/>\n&nbsp;&nbsp; For Attributei = 0 To attrlength-1<br \/>\n&nbsp;&nbsp;&nbsp; SQLArr(Attributei,num) = item.attributes(Attributei).Nodevalue<br \/>\n&nbsp;&nbsp; Next&nbsp;&nbsp; <br \/>\n&nbsp;&nbsp; num = num + 1<br \/>\n&nbsp; Next <br \/>\n&nbsp; Set XmlDoc = Nothing <br \/>\n&nbsp; m_SQLArr = SQLArr<br \/>\n&nbsp;End Function <br \/>\n&nbsp;<br \/>\n&nbsp;Rem \u4eceDB\u4e2d\u8bfb\u5217\u8868\u6570\u636e<br \/>\n&nbsp;Private Function ReadListAndSearchDataFromDB<br \/>\n&nbsp; Dim rs,TotalRec,CurPage<br \/>\n&nbsp; CurPage = m_CurPage<br \/>\n&nbsp; Set Rs = Server.CreateObject(&quot;Adodb.Recordset&quot;)<br \/>\n&nbsp; Rs.open m_sql,m_DataConn,1<br \/>\n&nbsp; TotalRec = rs.recordcount<br \/>\n&nbsp; m_RecordCount = TotalRec<br \/>\n&nbsp; rs.pagesize = m_PageSize<br \/>\n&nbsp; If&nbsp; CurPage&gt;rs.PageCount Then&nbsp; CurPage = rs.PageCount<br \/>\n&nbsp; If Not rs.eof Then rs.absolutePage=m_CurPage<br \/>\n&nbsp; Dim SQLARR()<br \/>\n&nbsp; Dim k<br \/>\n&nbsp; k = 0<br \/>\n&nbsp; While Not rs.eof and k&lt;m_PageSize<br \/>\n&nbsp;&nbsp; Dim fieldlegth<br \/>\n&nbsp;&nbsp; fieldlegth = rs.Fields.count<br \/>\n&nbsp;&nbsp; ReDim Preserve SQLARR(fieldlegth,k)<br \/>\n&nbsp;&nbsp; <br \/>\n&nbsp;&nbsp; Dim fieldi<br \/>\n&nbsp;&nbsp; For fieldi = 0 To fieldlegth-1<br \/>\n&nbsp;&nbsp;&nbsp; SQLArr(fieldi,k) = rs.Fields(fieldi).value<br \/>\n&nbsp;&nbsp; Next <br \/>\n&nbsp;&nbsp; rs.movenext<br \/>\n&nbsp;&nbsp; k=k+1<br \/>\n&nbsp; Wend <br \/>\n&nbsp; rs.close<br \/>\n&nbsp; Set rs = Nothing <br \/>\n&nbsp; m_SQLArr = SQLArr<br \/>\n&nbsp;End Function<\/p>\n<p>\n&nbsp;Rem \u83b7\u53d6xml\u6587\u4ef6\u540d\u79f0<br \/>\n&nbsp;Private Function getXmlFileName(num)<br \/>\n&nbsp; Dim tmpstr<br \/>\n&nbsp; tmpstr = LCase(m_XmlFile)<br \/>\n&nbsp; If Right(tmpstr,4) = &quot;.xml&quot; Then<br \/>\n&nbsp;&nbsp; tmpstr = Left(tmpstr,Len(tmpstr)-Len(&quot;.xml&quot;))<br \/>\n&nbsp; End If <br \/>\n&nbsp; tmpstr = Replace(tmpstr,&quot;%&quot;,&quot;_&quot;)<br \/>\n&nbsp; tmpstr = tmpstr &amp; &quot;_&quot; &amp; num &amp; &quot;.xml&quot;<br \/>\n&nbsp; getXmlFileName = tmpstr<br \/>\n&nbsp;End Function<\/p>\n<p>\n&nbsp;Rem \u516c\u5171\u65b9\u6cd5 \u5c06\u6570\u636e\u5199\u5165xml\u6587\u4ef6<br \/>\n&nbsp;Public Function WriteDataToXml<br \/>\n&nbsp; If m_CacheType = 1 Then <br \/>\n&nbsp;&nbsp; WriteListAndSearchDataToXml<br \/>\n&nbsp; Else <br \/>\n&nbsp;&nbsp; WriteContentDataToXml<br \/>\n&nbsp; End If <br \/>\n&nbsp;End Function<\/p>\n<p>\n&nbsp;Rem \u5199\u5177\u4f53\u67d0\u6761\u4fe1\u606f\u7684\u8be6\u60c5xml<br \/>\n&nbsp;Private Function WriteContentDataToXml<br \/>\n&nbsp; Rem xml\u672a\u8fc7\u671f\u5219\u76f4\u63a5\u9000\u51fa<br \/>\n&nbsp; Dim xmlfile<br \/>\n&nbsp; xmlfile = m_XmlFile<br \/>\n&nbsp; If FSOExistsFile(xmlfile) Then<br \/>\n&nbsp;&nbsp; If Not isXmlCacheExpired(xmlfile,m_CacheTime) Then&nbsp; Exit Function <br \/>\n&nbsp; End If <br \/>\n&nbsp; Dim rs<br \/>\n&nbsp; Set rs = Server.CreateObject(&quot;Adodb.Recordset&quot;)<\/p>\n<p>&nbsp; Rs.open m_sql,m_DataConn<br \/>\n&nbsp; CreateContentXmlFile xmlfile,Rs <br \/>\n&nbsp;End Function<\/p>\n<p>\n&nbsp;Rem \u5217\u8868\u548c\u641c\u7d22xml\u6570\u636e<br \/>\n&nbsp;Private Function WriteListAndSearchDataToXml<br \/>\n&nbsp; <br \/>\n&nbsp; Dim sPagesize,TotalPage,CurPage,TotalRec<br \/>\n&nbsp; sPagesize = m_PageSize * m_CachePageNum<\/p>\n<p>&nbsp; m_CurPage = CLng(m_CurPage)<br \/>\n&nbsp; <br \/>\n&nbsp; If m_CurPage Mod m_CachePageNum = 0 Then <br \/>\n&nbsp;&nbsp; CurPage = m_CurPage\/m_CachePageNum<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; CurPage = int(clng(m_CurPage)\/m_CachePageNum)+1<br \/>\n&nbsp; End If<\/p>\n<p>&nbsp; Dim xmlfile<br \/>\n&nbsp; xmlfile = getXmlFileName(CurPage)<\/p>\n<p>&nbsp; Rem \u5982\u679cxml\u672a\u8fc7\u671f\u5219\u76f4\u63a5\u9000\u51fa<br \/>\n&nbsp; If FSOExistsFile(xmlfile) Then<br \/>\n&nbsp;&nbsp; If Not isXmlCacheExpired(xmlfile,m_CacheTime) Then&nbsp; Exit Function <br \/>\n&nbsp; End If<br \/>\n&nbsp; Dim rs<br \/>\n&nbsp; Set Rs = Server.CreateObject(&quot;Adodb.Recordset&quot;)<br \/>\n&nbsp; Rs.open m_sql,m_DataConn,1<br \/>\n&nbsp; TotalRec = rs.recordcount<br \/>\n&nbsp; rs.pagesize = sPagesize<br \/>\n&nbsp; If&nbsp; CurPage&gt;rs.PageCount Then&nbsp; CurPage = rs.PageCount<br \/>\n&nbsp; CreateListAndSearchXMLFile xmlfile,TotalRec,Rs,sPagesize<br \/>\n&nbsp;End Function<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;Rem \u79c1\u6709\u65b9\u6cd5<br \/>\n&nbsp;Rem \u5f97\u5230\u6587\u4ef6\u7684\u6700\u540e\u4fee\u6539\u65f6\u95f4<br \/>\n&nbsp;Private Function FSOGetFileLastModifiedTime(file)<br \/>\n&nbsp; Dim fso,f,s&nbsp;&nbsp; <br \/>\n&nbsp; Set fso=CreateObject(&quot;Scripting.FileSystemObject&quot;)&nbsp;&nbsp; <br \/>\n&nbsp; Set f=fso.GetFile(file)&nbsp;&nbsp; <br \/>\n&nbsp; FSOGetFileLastModifiedTime = f.DateLastModified<br \/>\n&nbsp; Set f = Nothing<br \/>\n&nbsp; Set fso = Nothing <br \/>\n&nbsp;End Function<\/p>\n<p>\n&nbsp;Rem \u5224\u65adxml\u7f13\u5b58\u662f\u5426\u5230\u671f<br \/>\n&nbsp;Private Function isXmlCacheExpired(file,seconds)<br \/>\n&nbsp; Dim filelasttime<br \/>\n&nbsp; filelasttime = FSOGetFileLastModifiedTime(file)<br \/>\n&nbsp; If DateAdd(&quot;s&quot;,seconds,filelasttime) &lt; Now Then<br \/>\n&nbsp;&nbsp; isXmlCacheExpired = True <br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; isXmlCacheExpired = False<br \/>\n&nbsp; End If <br \/>\n&nbsp;End Function<\/p>\n<p>&nbsp;Rem \u6587\u4ef6\u662f\u5426\u5b58\u5728<br \/>\n&nbsp;Private Function FSOExistsFile(file)<br \/>\n&nbsp; Dim fso<br \/>\n&nbsp; Set fso = Server.CreateObject(&quot;Scripting.FileSystemObject&quot;)<br \/>\n&nbsp; If fso.FileExists(file) Then<br \/>\n&nbsp;&nbsp; FSOExistsFile = true<br \/>\n&nbsp; Else<br \/>\n&nbsp;&nbsp; FSOExistsFile = false<br \/>\n&nbsp; End If <br \/>\n&nbsp; Set fso = nothing<br \/>\n&nbsp;End Function <br \/>\n&nbsp;<\/p>\n<p>&nbsp;Rem \u751f\u6210\u8be6\u7ec6\u6570\u636e\u7684xml<br \/>\n&nbsp;Private Function CreateContentXmlFile(xmlfile,Rs)<br \/>\n&nbsp; Dim xmlcontent<br \/>\n&nbsp; xmlcontent = &quot;&lt;?xml version=&quot;&quot;1.0&quot;&quot; encoding=&quot;&quot;gb2312&quot;&quot;?&gt;&quot; &amp; vbnewline<br \/>\n&nbsp; xmlcontent = xmlcontent &amp; &quot;&lt;root&gt;&quot; &amp; vbnewline<br \/>\n&nbsp; <br \/>\n&nbsp; Dim field<br \/>\n&nbsp; For Each field In rs.Fields<br \/>\n&nbsp;&nbsp; xmlcontent = xmlcontent &amp; &quot;&lt;&quot;&amp;field.name&amp;&quot;&gt;&quot;<br \/>\n&nbsp;&nbsp; Dim value<br \/>\n&nbsp;&nbsp; value = field.value<br \/>\n&nbsp;&nbsp; If TypeName(value) = &quot;String&quot; Then <br \/>\n&nbsp;&nbsp;&nbsp; xmlcontent = xmlcontent &amp; &quot;&lt;![CDATA[&quot; &amp; Trim(value) &amp; &quot;]]&gt;&quot;<br \/>\n&nbsp;&nbsp; Else<br \/>\n&nbsp;&nbsp;&nbsp; xmlcontent = xmlcontent &amp;&nbsp; Trim(value) <br \/>\n&nbsp;&nbsp; End If <br \/>\n&nbsp;&nbsp; xmlcontent = xmlcontent &amp; &quot;&lt;\/&quot;&amp;field.name&amp;&quot;&gt;&quot; &amp; vbnewline<br \/>\n&nbsp; Next <br \/>\n&nbsp; rs.close<br \/>\n&nbsp; Set rs = Nothing <br \/>\n&nbsp; xmlcontent = xmlcontent &amp; &quot;&lt;\/root&gt;&quot; &amp; vbnewline<br \/>\n&nbsp; <br \/>\n&nbsp; Dim folderpath<br \/>\n&nbsp; folderpath = Trim(left(xmlfile,InstrRev(xmlfile,&quot;\\&quot;)-1))<br \/>\n&nbsp; Call CreateDIR(folderpath&amp;&quot;&quot;) &#8216;\u521b\u5efa\u6587\u4ef6\u5939<br \/>\n&nbsp; WriteStringToXMLFile xmlfile,xmlcontent <br \/>\n&nbsp;End Function<\/p>\n<p>\n&nbsp;Rem \u751f\u6210\u5217\u8868\u7684xml<br \/>\n&nbsp;Private Function CreateListAndSearchXMLFile(xmlfile,TotalRec,Rs,sPagesize)<br \/>\n&nbsp; Dim xmlcontent<br \/>\n&nbsp; xmlcontent = &quot;&quot;<br \/>\n&nbsp; xmlcontent = xmlcontent &amp; &quot;&lt;?xml version=&quot;&quot;1.0&quot;&quot; encoding=&quot;&quot;gb2312&quot;&quot;?&gt;&quot; &amp; vbnewline<br \/>\n&nbsp; xmlcontent = xmlcontent &amp; &quot; &lt;root&gt;&quot; &amp; vbnewline<br \/>\n&nbsp; xmlcontent = xmlcontent &amp; &quot;&nbsp; &lt;totalrec&gt;&quot; &amp; TotalRec &amp; &quot;&lt;\/totalrec&gt;&quot; &amp; vbnewline<\/p>\n<p>&nbsp; Dim k<br \/>\n&nbsp; k = 0<br \/>\n&nbsp; Dim field<br \/>\n&nbsp; While Not rs.eof and k&lt;sPagesize<br \/>\n&nbsp;&nbsp; xmlcontent = xmlcontent &amp; &quot;&nbsp; &lt;item &quot;<br \/>\n&nbsp;&nbsp; For Each field In rs.Fields<br \/>\n&nbsp;&nbsp;&nbsp; xmlcontent = xmlcontent &amp; field.name &amp; &quot;=&quot;&quot;&quot; &amp; XMLStringEnCode(field.value) &amp; &quot;&quot;&quot; &quot;<br \/>\n&nbsp;&nbsp; Next <br \/>\n&nbsp;&nbsp; xmlcontent = xmlcontent &amp;&nbsp; &quot;&gt;&lt;\/item&gt;&quot; &amp; vbnewline<br \/>\n&nbsp;&nbsp; rs.movenext<br \/>\n&nbsp;&nbsp; k=k+1<br \/>\n&nbsp; Wend <br \/>\n&nbsp; rs.close<br \/>\n&nbsp; Set rs = Nothing <br \/>\n&nbsp; xmlcontent = xmlcontent &amp; &quot; &lt;\/root&gt;&quot; &amp; vbnewline<br \/>\n&nbsp; Dim folderpath<br \/>\n&nbsp; folderpath = Trim(left(xmlfile,InstrRev(xmlfile,&quot;\\&quot;)-1))<br \/>\n&nbsp; Call CreateDIR(folderpath&amp;&quot;&quot;) &#8216;\u521b\u5efa\u6587\u4ef6\u5939<br \/>\n&nbsp; WriteStringToXMLFile xmlfile,xmlcontent<br \/>\n&nbsp;End Function<\/p>\n<p>&nbsp;Rem xml\u8f6c\u4e49\u5b57\u7b26<br \/>\n&nbsp;Private Function XMLStringEnCode(str)<br \/>\n&nbsp; If str&amp;&quot;&quot; = &quot;&quot; Then XMLStringEnCode=&quot;&quot;:Exit Function<br \/>\n&nbsp; str = Replace(str,&quot;&lt;&quot;,&quot;&amp;lt;&quot;)<br \/>\n&nbsp; str = Replace(str,&quot;&gt;&quot;,&quot;&amp;gt;&quot;)<br \/>\n&nbsp; str = Replace(str,&quot;&#8217;&quot;,&quot;&amp;apos;&quot;)<br \/>\n&nbsp; str = Replace(str,&quot;&quot;&quot;&quot;,&quot;&amp;quot;&quot;)<br \/>\n&nbsp; str = Replace(str,&quot;&amp;&quot;,&quot;&amp;amp;&quot;)<br \/>\n&nbsp; XMLStringEnCode = str<br \/>\n&nbsp;End Function <br \/>\n&nbsp;Rem \u5199\u6587\u4ef6<br \/>\n&nbsp;Private Sub WriteStringToXMLFile(filename,str)<br \/>\n&nbsp; &#8216;On Error Resume Next <br \/>\n&nbsp; Dim fs,ts<br \/>\n&nbsp; Set fs= createobject(&quot;scripting.filesystemobject&quot;)<br \/>\n&nbsp; If Not IsObject(fs) Then Exit Sub&nbsp;&nbsp; <br \/>\n&nbsp; Set ts=fs.OpenTextFile(filename,2,True)<br \/>\n&nbsp; ts.writeline(str)<br \/>\n&nbsp; ts.close<br \/>\n&nbsp; Set ts=Nothing<br \/>\n&nbsp; Set fs=Nothing<br \/>\n&nbsp;End Sub<\/p>\n<p>\n&nbsp;Rem \u521b\u5efa\u6587\u4ef6\u5939<br \/>\n&nbsp;Private function CreateDIR(byval LocalPath)<br \/>\n&nbsp; On&nbsp; Error&nbsp; Resume&nbsp; Next <br \/>\n&nbsp; Dim i,FileObject,patharr,path_level,pathtmp,cpath<br \/>\n&nbsp; LocalPath = Replace(LocalPath,&quot;\\&quot;,&quot;\/&quot;)<br \/>\n&nbsp; Set&nbsp; FileObject = server.createobject(&quot;Scripting.FileSystemObject&quot;)<br \/>\n&nbsp; patharr = Split(LocalPath,&quot;\/&quot;)<br \/>\n&nbsp; path_level = UBound (patharr)<br \/>\n&nbsp; For&nbsp; i = 0 To&nbsp; path_level<br \/>\n&nbsp;&nbsp; If&nbsp; i=0 Then&nbsp; <br \/>\n&nbsp;&nbsp;&nbsp; pathtmp=patharr(0) &amp; &quot;\/&quot; <br \/>\n&nbsp;&nbsp; Else&nbsp; <br \/>\n&nbsp;&nbsp;&nbsp; pathtmp = pathtmp &amp; patharr(i) &amp; &quot;\/&quot;<br \/>\n&nbsp;&nbsp; End If <br \/>\n&nbsp;&nbsp; cpath = left(pathtmp,len(pathtmp)-1)<br \/>\n&nbsp;&nbsp; If&nbsp; Not&nbsp; FileObject.FolderExists(cpath) Then <br \/>\n&nbsp;&nbsp;&nbsp; &#8216;Response.write cpath<br \/>\n&nbsp;&nbsp;&nbsp; FileObject.CreateFolder cpath<br \/>\n&nbsp;&nbsp; End&nbsp; If <br \/>\n&nbsp; Next <br \/>\n&nbsp; Set&nbsp; FileObject = Nothing <br \/>\n&nbsp; If&nbsp; err.number&lt;&gt;0 Then <br \/>\n&nbsp;&nbsp; CreateDIR = False <br \/>\n&nbsp;&nbsp; err.Clear<br \/>\n&nbsp; Else <br \/>\n&nbsp;&nbsp; CreateDIR = True <br \/>\n&nbsp; End&nbsp; If <br \/>\n&nbsp;End&nbsp; Function <br \/>\nEnd Class <br \/>\n%&gt;<\/p>\n<p>\n\u6b64\u7c7b\u5305\u542b\u4e24\u79cd\u7f13\u5b58\u65b9\u5f0f\uff1a\u4e00\u79cd\u662f\u57fa\u4e8e\u5217\u8868\u65b9\u5f0f\u7684\uff0c\u5982\u6309\u7167\u67d0\u4e2a\u7c7b\u522b\u663e\u793a\u4fe1\u606f\u3001\u641c\u7d22\u67d0\u4e2a\u5173\u952e\u8bcd\u8fdb\u884c\u663e\u793a\uff1b\u53e6\u5916\u4e00\u79cd\u662f\u8be6\u7ec6\u9875\u9762\u7684\u7f13\u5b58\uff0c\u5982\u663e\u793a\u5177\u4f53\u7684\u67d0\u7bc7\u6587\u7ae0\u3002<br \/>\n\u6b64\u7c7b\u4e0e\u5177\u4f53\u7684\u4e1a\u52a1\u903b\u8f91\u65e0\u5173\uff0c\u53ea\u8d1f\u8d23xml\u6570\u636e\u7684\u8bfb\u53d6\u548c\u5b58\u50a8\uff0c\u5224\u65ad\u662f\u5426\u7f13\u5b58\u8fc7\u671f\u51b3\u5b9a\u662f\u5426\u9700\u8981\u66f4\u65b0\u7f13\u5b58\u3002\u6309\u7167\u4e09\u5c42\u6784\u67b6\u6a21\u5f0f\u7684\u8bdd\uff0c\u5b83\u5904\u4e8e\u6570\u636e\u8bbf\u95ee\u5c42\u3002<\/p>\n<p>\n\u8c03\u7528\u8fd9\u4e2a\u7c7b\u7684\u4ee3\u7801\uff1a<br \/>\nBusiness.asp<br \/>\n&lt;%<br \/>\nRem xml\u6570\u636e\u7f13\u5b58\u7c7b\u4e1a\u52a1\u903b\u8f91\u5c42\u4ee3\u7801<br \/>\n&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n&#8216;\u8f6c\u8f7d\u7684\u65f6\u5019\u8bf7\u4fdd\u7559\u7248\u6743\u4fe1\u606f<br \/>\n&#8216;\u4f5c\u8005:walkman<br \/>\n&#8216;\u7f51\u5740:\u624b\u673a\u4e3b\u9898 <a rel=\"nofollow\" href=\"http:\/\/www.shouji138.com\">http:\/\/www.shouji138.com<\/a><br \/>\n&#8216;\u7248\u672c:ver1.0<br \/>\n&#8216;\u6b22\u8fce\u5404\u4f4d\u4ea4\u6d41\u8fdb\u6b65<br \/>\n&#8216;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<\/p>\n<p>Rem \u6839\u636eclassid\u53d6\u5217\u8868\u6570\u636e<br \/>\nFunction GetListarr(classid,curpage,PageSize,CachePageNum,ByRef RecordCount)<br \/>\n&nbsp;openConn<br \/>\n&nbsp;Dim sql<br \/>\n&nbsp;sql = &quot;select thmid,thmname,picfileurl,win_theme.adddate from win_theme where&nbsp; win_theme.ClassID=&quot;&amp;classid&amp;&quot; order by thmid desc&quot;<br \/>\n&nbsp;Dim cache<br \/>\n&nbsp;Set cache = new XmlCacheCls<br \/>\n&nbsp;cache.PageSize = PageSize&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u6bcf\u9875N\u6761\u8bb0\u5f55<br \/>\n&nbsp;cache.CachePageNum = CachePageNum&nbsp;&nbsp;&nbsp; &#8216;\u4e00\u4e2axml\u6587\u4ef6\u7f13\u5b58M\u9875\u7684\u6570\u636e\u91cf<br \/>\n&nbsp;cache.XmlFile = Server.Mappath(&quot;xmlcache\/classxml\/list_&quot;&amp;classid&amp;&quot;.xml&quot;)<br \/>\n&nbsp;cache.Sql = sql<br \/>\n&nbsp;cache.CurPage = curpage<br \/>\n&nbsp;cache.CacheType = 1<br \/>\n&nbsp;Set cache.Conn = conn <br \/>\n&nbsp;cache.ReadData<br \/>\n&nbsp;Dim SqlArr<br \/>\n&nbsp;SQLArr = cache.SQLArr<br \/>\n&nbsp;RecordCount = cache.RecordCount<br \/>\n&nbsp;Set cache = Nothing <br \/>\n&nbsp;GetListarr = SqlArr<br \/>\nEnd Function<\/p>\n<p>\nRem \u6839\u636eclassid\u751f\u6210xml\u7f13\u5b58<br \/>\nFunction CreateListxml(classid,curpage,PageSize,CachePageNum,CacheTime)<br \/>\n&nbsp;Dim sql<br \/>\n&nbsp;sql = &quot;select thmid,thmname,picfileurl,win_theme.adddate from win_theme where&nbsp; win_theme.ClassID=&quot;&amp;classid&amp;&quot; order by thmid desc&quot;<br \/>\n&nbsp;Dim cache<br \/>\n&nbsp;Set cache = new XmlCacheCls<br \/>\n&nbsp;cache.CacheTime = CacheTime &#8216;\u7f13\u5b58\u65f6\u95f4<br \/>\n&nbsp;cache.PageSize = PageSize&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u6bcf\u9875N\u6761\u8bb0\u5f55<br \/>\n&nbsp;cache.CachePageNum = CachePageNum&nbsp;&nbsp;&nbsp; &#8216;\u4e00\u4e2axml\u6587\u4ef6\u7f13\u5b58M\u9875\u7684\u6570\u636e\u91cf<br \/>\n&nbsp;cache.XmlFile = Server.Mappath(&quot;xmlcache\/classxml\/list_&quot;&amp;classid&amp;&quot;.xml&quot;)<br \/>\n&nbsp;cache.Sql = sql<br \/>\n&nbsp;cache.CurPage = curpage<br \/>\n&nbsp;cache.CacheType = 1<br \/>\n&nbsp;Set cache.Conn = conn<br \/>\n&nbsp;cache.WriteDataToXml<br \/>\n&nbsp;Set cache = Nothing <br \/>\nEnd Function<\/p>\n<p>\nRem \u6839\u636ekeyword\u53d6\u5217\u8868\u6570\u636e<br \/>\nFunction GetSearcharr(keyword,curpage,PageSize,CachePageNum,ByRef RecordCount)<br \/>\n&nbsp;openConn<br \/>\n&nbsp;Dim sql<br \/>\n&nbsp;Dim sqlkey<br \/>\n&nbsp;sqlkey = Replace(keyword,&quot;&#8217;&quot;,&quot;&quot;)<br \/>\n&nbsp;sql = &quot;select thmid,thmname,picfileurl,win_theme.adddate from win_theme where&nbsp; ThmName like &#8216;%&quot;&amp;sqlkey&amp;&quot;%&#8217; or ThmRange&nbsp; like &#8216;%&quot;&amp;sqlkey&amp;&quot;%&#8217; or ThmInstro&nbsp; like &#8216;%&quot;&amp;sqlkey&amp;&quot;%&#8217;&nbsp; order by thmid desc&quot;<br \/>\n&nbsp;Dim cache<br \/>\n&nbsp;Set cache = new XmlCacheCls<br \/>\n&nbsp;cache.PageSize = PageSize&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u6bcf\u9875N\u6761\u8bb0\u5f55<br \/>\n&nbsp;cache.CachePageNum = CachePageNum&nbsp;&nbsp;&nbsp; &#8216;\u4e00\u4e2axml\u6587\u4ef6\u7f13\u5b58M\u9875\u7684\u6570\u636e\u91cf<br \/>\n&nbsp;cache.XmlFile = Server.Mappath(&quot;xmlcache\/searchxml\/list_&quot;&amp;Server.URlEncode(Replace(keyword,&quot;&#8217;&quot;,&quot;&quot;))&amp;&quot;.xml&quot;)<br \/>\n&nbsp;cache.Sql = sql<br \/>\n&nbsp;cache.CurPage = curpage<br \/>\n&nbsp;cache.CacheType = 1<br \/>\n&nbsp;Set cache.Conn = conn <br \/>\n&nbsp;cache.ReadData<br \/>\n&nbsp;Dim SqlArr<br \/>\n&nbsp;SQLArr = cache.SQLArr<br \/>\n&nbsp;RecordCount = cache.RecordCount<br \/>\n&nbsp;Set cache = Nothing <br \/>\n&nbsp;GetSearcharr = SqlArr<br \/>\nEnd Function<\/p>\n<p>&nbsp;<\/p>\n<p>Rem \u6839\u636ekeyword\u751f\u6210xml\u7f13\u5b58<br \/>\nFunction CreateSearchxml(keyword,curpage,PageSize,CachePageNum,CacheTime)<br \/>\n&nbsp;Dim sql<br \/>\n&nbsp;Dim sqlkey<br \/>\n&nbsp;sqlkey = Replace(keyword,&quot;&#8217;&quot;,&quot;&quot;)<br \/>\n&nbsp;sql = &quot;select thmid,thmname,picfileurl,win_theme.adddate from win_theme where&nbsp; ThmName like &#8216;%&quot;&amp;sqlkey&amp;&quot;%&#8217; or ThmRange&nbsp; like &#8216;%&quot;&amp;sqlkey&amp;&quot;%&#8217; or ThmInstro&nbsp; like &#8216;%&quot;&amp;sqlkey&amp;&quot;%&#8217;&nbsp; order by thmid desc&quot;<br \/>\n&nbsp;Dim cache<br \/>\n&nbsp;Set cache = new XmlCacheCls<br \/>\n&nbsp;cache.CacheTime = CacheTime &#8216;\u7f13\u5b58\u65f6\u95f4<br \/>\n&nbsp;cache.PageSize = PageSize&nbsp;&nbsp;&nbsp;&nbsp; &#8216;\u6bcf\u9875N\u6761\u8bb0\u5f55<br \/>\n&nbsp;cache.CachePageNum = CachePageNum&nbsp;&nbsp;&nbsp; &#8216;\u4e00\u4e2axml\u6587\u4ef6\u7f13\u5b58M\u9875\u7684\u6570\u636e\u91cf<br \/>\n&nbsp;cache.XmlFile =&nbsp; Server.Mappath(&quot;xmlcache\/searchxml\/list_&quot;&amp;Server.URlEncode(Replace(keyword,&quot;&#8217;&quot;,&quot;&quot;))&amp;&quot;.xml&quot;)<br \/>\n&nbsp;cache.Sql = sql<br \/>\n&nbsp;cache.CurPage = curpage<br \/>\n&nbsp;cache.CacheType = 1<br \/>\n&nbsp;Set cache.Conn = conn<br \/>\n&nbsp;cache.WriteDataToXml<br \/>\n&nbsp;Set cache = Nothing <br \/>\nEnd Function<\/p>\n<p>Rem \u6839\u636eclassid\u53d6\u5217\u8868\u6570\u636e<br \/>\nFunction GetDetailarr(thmid)<br \/>\n&nbsp;openConn<br \/>\n&nbsp;Dim sql<br \/>\n&nbsp;sql = &quot;select a.thmid,a.thmname,a.classid,b.classname,a.picfileurl,a.thmver,a.thmsize,a.thminstro,a.thmrange,a.thmfileurl,a.adddate from win_theme a,Win_Classify b where a.classid=b.classid and&nbsp; a.thmid=&quot;&amp;thmid&amp;&quot;&quot;<br \/>\n&nbsp;Dim thmidmod<br \/>\n&nbsp;thmidmod = thmid Mod 100<br \/>\n&nbsp;<br \/>\n&nbsp;Dim cache<br \/>\n&nbsp;Set cache = new XmlCacheCls<br \/>\n&nbsp;cache.XmlFile = Server.Mappath(&quot;xmlcache\/detailxml\/&quot;&amp;thmidmod&amp;&quot;\/&quot;&amp;thmid&amp;&quot;.xml&quot;)<br \/>\n&nbsp;cache.Sql = sql<br \/>\n&nbsp;cache.CacheType = 2<br \/>\n&nbsp;Set cache.Conn = conn <br \/>\n&nbsp;cache.ReadData<br \/>\n&nbsp;Dim SqlArr<br \/>\n&nbsp;SQLArr = cache.SQLArr<br \/>\n&nbsp;Set cache = Nothing <br \/>\n&nbsp;GetDetailarr = SqlArr<br \/>\nEnd Function<\/p>\n<p>Rem \u6839\u636ekeyword\u751f\u6210xml\u7f13\u5b58<br \/>\nFunction CreateDetailxml(thmid,CacheTime)<br \/>\n&nbsp;Dim sql<br \/>\n&nbsp;sql = &quot;select a.thmid,a.thmname,a.classid,b.classname,a.picfileurl,a.thmver,a.thmsize,a.thminstro,a.thmrange,a.thmfileurl,a.adddate from win_theme a,Win_Classify b where a.classid=b.classid and&nbsp; a.thmid=&quot;&amp;thmid&amp;&quot;&quot;<br \/>\n&nbsp;Dim thmidmod<br \/>\n&nbsp;thmidmod = thmid Mod 100<br \/>\n&nbsp;Dim cache<br \/>\n&nbsp;Set cache = new XmlCacheCls<br \/>\n&nbsp;cache.CacheTime = CacheTime &#8216;\u7f13\u5b58\u65f6\u95f4<br \/>\n&nbsp;cache.XmlFile =&nbsp; Server.Mappath(&quot;xmlcache\/detailxml\/&quot;&amp;thmidmod&amp;&quot;\/&quot;&amp;thmid&amp;&quot;.xml&quot;)<br \/>\n&nbsp;cache.Sql = sql<br \/>\n&nbsp;cache.CacheType = 2<br \/>\n&nbsp;Set cache.Conn = conn<br \/>\n&nbsp;cache.WriteDataToXml<br \/>\n&nbsp;Set cache = Nothing <br \/>\nEnd Function<\/p>\n<p>\nRem \u68c0\u6d4b\u52a8\u6001\u6570\u7ec4\u662f\u5426\u5df2\u5206\u914d<br \/>\nFunction&nbsp;&nbsp; ismalloc(a)<br \/>\n&nbsp;On&nbsp;&nbsp; Error Resume Next <br \/>\n&nbsp;Dim&nbsp;&nbsp; i&nbsp;&nbsp; <br \/>\n&nbsp;i&nbsp;&nbsp; =&nbsp;&nbsp; UBound(a)<br \/>\n&nbsp;If Err Then <br \/>\n&nbsp;ismalloc = False <br \/>\n&nbsp;Else<br \/>\n&nbsp;ismalloc&nbsp;&nbsp; =&nbsp;&nbsp; True&nbsp;&nbsp; <br \/>\n&nbsp;End If&nbsp; <br \/>\nEnd&nbsp;&nbsp; Function&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Function showData(SQLArr)<\/p>\n<p>&nbsp;If Not&nbsp; ismalloc(SQLArr) Then Exit Function <br \/>\n&nbsp;Dim i,k<br \/>\n&nbsp;Dim num<br \/>\n&nbsp;num = 0<br \/>\n&nbsp;i = UBound(SQLArr,1)<br \/>\n&nbsp;k = UBound(SQLArr,2)<br \/>\n&nbsp;Dim m,n<br \/>\n&nbsp;For m = 0 To k<br \/>\n&nbsp; num = num+1<br \/>\n&nbsp;%&gt; <br \/>\n&nbsp;&lt;ul class=&quot;listbox&quot; onMouseOver=&quot;overtb(this)&quot; onMouseOut=&quot;outtb(this)&quot;&gt;<br \/>\n&lt;li&gt;<br \/>\n&lt;a title=&quot;&lt;%=SQLArr(1,m)%&gt;&quot; href=&quot;detail.asp?id=&lt;%=SQLArr(0,m)%&gt;&quot; target=&quot;_blank&quot;&gt;<br \/>\n&nbsp; &lt;img height=&quot;140&quot; alt=&quot;&lt;%=SQLArr(1,m)%&gt;&quot; src=&quot;<a rel=\"nofollow\" href=\"http:\/\/www.shouji138.com&lt;%=SQLArr(2,m)%\">http:\/\/www.shouji138.com&lt;%=SQLArr(2,m)%<\/a>&gt;&quot; width=&quot;107&quot; border=&quot;0&quot;&gt;&lt;\/a&gt;<br \/>\n&lt;\/li&gt;<br \/>\n&lt;li class=&quot;green bold&quot;&gt;<br \/>\n&lt;a title=&quot;&lt;%=SQLArr(1,m)%&gt;&quot; href=&quot;detail.asp?id=&lt;%=SQLArr(0,m)%&gt;&quot; _fcksavedurl=&quot;&quot;detail.asp?id=&lt;%=SQLArr(0,m)%&gt;&quot;&quot; target=&quot;_blank&quot;&gt;<br \/>\n&lt;%=walkgottopic(Trim(SQLArr(1,m)),18)%&gt;&lt;\/a&gt;<br \/>\n&lt;\/li&gt;<br \/>\n&nbsp;&lt;li&gt;&lt;%=DateValue(SQLArr(3,m))%&gt;&lt;\/li&gt;<br \/>\n&nbsp;&lt;\/ul&gt;<br \/>\n&nbsp;&lt;%<br \/>\n&nbsp;next<br \/>\nEnd Function<\/p>\n<p>%&gt;<\/p>\n<p>\u8fd9\u4e2a\u6587\u4ef6\u662f\u4e1a\u52a1\u903b\u8f91\u5c42\u4ee3\u7801\uff0c\u8d1f\u8d23\u6839\u636e\u4e0d\u540c\u7684\u4e1a\u52a1\u903b\u8f91\u6765\u5b9e\u73b0xml\u6570\u636e\u7684\u8bfb\u53d6\u548c\u5199\u5165\uff0c\u5e76\u63d0\u4f9b\u63a5\u53e3\u65b9\u6cd5\u7ed9web\u8868\u73b0\u5c42\u8c03\u7528\u3002<\/p>\n<p>\u5177\u4f53\u7684\u8c03\u7528\u4ee3\u7801\uff1a<br \/>\nlist.asp<br \/>\n\u53ea\u663e\u793a\u76f8\u5173\u4ee3\u7801\u3002<br \/>\n&lt;%<br \/>\n\u3002\u3002\u3002\u3002\u3002\u3002<br \/>\nDim classid<br \/>\nclassid = Request(&quot;classid&quot;)<br \/>\nIf classid = &quot;&quot; Or (Not IsNumeric(classid)) Then Response.write &quot;\u53c2\u6570\u9519\u8bef\uff01&quot;:Response.End()<br \/>\nclassid = CLng(classid)<\/p>\n<p>Dim sPagesize,TotalPage,CurPage,TotalRec,CachePageNum<br \/>\nsPagesize = 20<br \/>\nCachePageNum = 10<br \/>\nCurPage = Trim(Request(&quot;page&quot;))<br \/>\nIF CurPage=&quot;&quot; Or (Not IsNumeric(CurPage)) Then<br \/>\n&nbsp; CurPage=1<br \/>\nElse<br \/>\n&nbsp; CurPage=Clng(CurPage)<br \/>\nEnd IF<br \/>\nDim myarr<\/p>\n<p>myarr = GetListarr(classid,CurPage,sPagesize,CachePageNum,TotalRec)<\/p>\n<p>&#8216;\u603b\u9875\u6570<br \/>\nTotalPage = int(clng(TotalRec)\/sPagesize*-1)*-1<\/p>\n<p>If Clng(TotalRec)&gt;0 Then <br \/>\n&nbsp;showData myarr<br \/>\nEnd If <br \/>\n&#8230;&#8230;&#8230;&#8230;&#8230;.<br \/>\n%&gt;<br \/>\n\u6700\u540e\u5728\u9875\u9762\u6700\u5e95\u90e8\u8c03\u7528\u4e00\u4e2aasp\u7684script\u8bed\u53e5\u6765\u66f4\u65b0xml\u7f13\u5b58\u3002<br \/>\n&lt;script type=&quot;text\/javascript&quot; src=&quot;setcache.asp?action=list&amp;curpage=&lt;%=curpage%&gt;&amp;classid=&lt;%=classid%&gt;&quot;&gt;&lt;\/script&gt;<\/p>\n<p>\nsetcache.asp<br \/>\n\u76f8\u5173\u4ee3\u7801<br \/>\n&lt;%<br \/>\nopenconn<br \/>\nDim action <br \/>\naction = Trim(Request(&quot;action&quot;))&amp;&quot;&quot;<\/p>\n<p>Dim curpage<br \/>\ncurpage = Request(&quot;curpage&quot;)<\/p>\n<p>Dim classid<br \/>\nDim keyword<br \/>\nDim thmid<br \/>\nIf action = &quot;list&quot; Then<br \/>\n&nbsp;classid = Request(&quot;classid&quot;)<br \/>\n&nbsp;If classid=&quot;&quot; Or (Not IsNumeric(classid)) Or curpage=&quot;&quot; Or (Not IsNumeric(curpage)) Then<br \/>\n&nbsp;Else<br \/>\n&nbsp; CreateListxml CLng(classid),CLng(curpage),20,10,60 * 60 * 2&nbsp; &#8216;\u521b\u5efa\u5206\u7c7b\u7684xml<br \/>\n&nbsp;End If <br \/>\nElseIf action = &quot;search&quot; Then<br \/>\n&nbsp;keyword = Trim(Request(&quot;keyword&quot;))<br \/>\n&nbsp;If keyword=&quot;&quot;&nbsp; Then<br \/>\n&nbsp;Else<br \/>\n&nbsp; CreateSearchxml keyword,CLng(curpage),20,10,60 * 60 * 2&nbsp; &#8216;\u521b\u5efa\u641c\u7d22\u7684xml<br \/>\n&nbsp;End If <br \/>\nElseIf action = &quot;detail&quot; Then<br \/>\n&nbsp;thmid = Request(&quot;id&quot;)<br \/>\n&nbsp;If thmid=&quot;&quot; Or (Not IsNumeric(thmid))&nbsp; Then<br \/>\n&nbsp;Else<br \/>\n&nbsp; CreateDetailxml CLng(thmid),60 * 60 * 2&nbsp; &#8216;\u521b\u5efa\u8be6\u60c5\u7684xml<br \/>\n&nbsp;End If <br \/>\nEnd If <br \/>\nCall Closeconn<br \/>\nResponse.write &quot; &quot;<br \/>\nResponse.End<\/p>\n<p>%&gt;<br \/>\n\u81f3\u6b64\uff0c\u6838\u5fc3\u4ee3\u7801\u90fd\u5206\u4eab\u51fa\u6765\u4e86\uff0c\u5b9e\u8df5\u8bc1\u660e\uff0c\u901a\u8fc7\u8fd9\u6837\u7684\u65b9\u5f0f\uff0c\u6211\u7684138\u624b\u673a\u4e3b\u9898\u7f51\u7684\u670d\u52a1\u5668\u7684CPU\u5360\u7528\u7387\u548c\u5185\u5b58\u5360\u7528\u7387\u660e\u663e\u4e0b\u964d\uff0c\u8bbf\u95ee\u901f\u5ea6\u4e5f\u660e\u663e\u63d0\u9ad8\uff0c\u4ece\u4ee5\u524d\u7684\u9700\u8981\u51e0\u79d2\u751a\u81f310\u591a\u79d2\uff0c\u5230\u73b0\u5728\u53ea\u9700\u898110\u51e0\u6beb\u79d2\u3002<br \/>\n\u4e3a\u4e86\u65b9\u4fbf\u5927\u5bb6\u7406\u89e3\u5176\u4e2d\u7684\u4ee3\u7801\uff0c\u6211\u7279\u5730\u505a\u4e86\u4e00\u4e2ademo\uff0c\u4f9b\u540c\u884c\u5b66\u4e60\u4ea4\u6d41\u3002\u5730\u5740\uff1a<a rel=\"nofollow\" href=\"http:\/\/www.shouji138.com\/aspnet2\/demo\">http:\/\/www.shouji138.com\/aspnet2\/demo<\/a><br \/>\n\u6b64\u4f8b\u7a0b\u7684\u5b8c\u6574\u4e0b\u8f7d\u5305\uff1a<a rel=\"nofollow\" href=\"http:\/\/www.shouji138.com\/aspnet2\/demo\/xmlcachedemo.rar\">http:\/\/www.shouji138.com\/aspnet2\/demo\/xmlcachedemo.rar<\/a><\/p>\n<p>\n\u672c\u6587\u6765\u81ea: \u987a\u5b50\u7f51\u7edc(<a rel=\"nofollow\" href=\"http:\/\/www.0798wz.com\">www.0798wz.com<\/a>) \u8be6\u7ec6\u51fa\u5904\u53c2\u8003\uff1a<a rel=\"nofollow\" href=\"http:\/\/www.0798wz.com\/A909\">http:\/\/www.0798wz.com\/A909<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6253\u9020\u4e00\u4e2a\u9ad8\u6027\u80fd\u7a33\u5b9a\u7684web\u7ad9\u70b9\u4e00\u76f4\u662f\u7ad9\u957f\u548c\u7a0b\u5e8f\u5458\u7684\u68a6\u60f3\uff0c\u672c\u6587\u7528\u4f5c\u8005\u7684\u4e00\u6b21\u4eb2\u8eab\u7ecf\u5386\u7684\u6765\u8bf4\u8bf4\u5982\u4f55\u5229\u7528xml\u7f13\u5b58\u6280\u672f\u5b9e\u73b0\u7ad9\u70b9\u7684\u9ad8\u6027\u80fd\u3002\u6211\u662f\u4ece\u4eca\u5e74\u5f00\u59cb\u505a138\u624b\u673a\u4e3b\u9898\u7f51\u7684\uff0c\u91c7\u7528SQL2000\u505a\u4e3a\u6570\u636e\u5e93\uff0c\u5f00\u53d1\u8bed\u8a00\u7528\u7684\u662fAsp\uff0c\u67e5\u8be2\u7684\u65f6\u5019\u90fd\u662f\u52a8\u6001\u67e5\u8be2\uff0c&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"topic":[],"class_list":["post-166","post","type-post","status-publish","format-standard","hentry","category-technology"],"_links":{"self":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/166","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/comments?post=166"}],"version-history":[{"count":1,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/166\/revisions"}],"predecessor-version":[{"id":66017,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/posts\/166\/revisions\/66017"}],"wp:attachment":[{"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/media?parent=166"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/categories?post=166"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/tags?post=166"},{"taxonomy":"topic","embeddable":true,"href":"http:\/\/www.xiaoyebailong.com\/index.php\/wp-json\/wp\/v2\/topic?post=166"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}