筆者為微軟台北廳、TechNet等研討會講師,和微軟之友、RUN!PC雜誌專欄作者,著作有「IIS 5.0超級網站速成班」(新書)、「ASP網站熱門應用技術」、「微軟熱門Web技術速成班」等網站網頁設計十幾本電腦書籍。現任「喬篷科技」公司總經理,從事WebFlow、網站熱門應用精選等Web資料庫應用設計等服務。
IIS示範網站:www.asp.com.tw
連絡E-mail:jackchou@asp.com.tw。
本文介紹IIS 5.0與XML,包括ADO如何支援XML、ADO如何支援XML、IE 5.0如何支援XML等功能。
其中ADO如何支援XML單元,將介紹Recordset儲存成XML檔案、Recordset以XML格式輸出到瀏覽器、Recordset以XML格式儲存於記憶體、記憶體XML格式資料轉到Recordset,為本文精彩的部份。
XML(eXtensible Markup Language)支援
XML(eXtensible Markup Language)將成為資料交換的標準。
IIS 5.0於XML(eXtensible Markup Language)支援方面,包含:
1. ADO支援XML,可以直接將recordset的資料,以XML格式儲存成一個XML檔案或輸出(Response)到瀏覽器;或將recordset的資料以XML格式儲存於記憶體中(使用STREAM物件)。
2. XML Parser(XMLDOM)以解析XML檔案,可於IE(client)與 ASP(server)上使用。
3. IE 5.0支援XML,包括IE 5.0 XML Data Islands和Databinding,以及XSL(eXtensible Stylesheet Language)Stylesheets。
ADO如何支援XML呢?
Windows 2000 Server之IIS 5.0包括ADO 2.5版,IIS 4.0可使用ADO 2.1版。
ADO 2.5對於XML新提供的功能:
1. 直接將recordset的資料,以XML格式輸出(Response)到瀏覽器,使用RS.Save Response, adPersistXML指令。
2. 新增加STREAM物件,於記憶體儲存XML格式的資料,將ADO之Recordset資料儲存成XML格式,暫時放置於記憶體當中,提供recordset與記憶體XML格式資料之間的交換功能。
ADO支援XML,可以直接將recordset的資料,以XML格式儲存成一個XML檔案或輸出(Response)到瀏覽器;或將recordset的資料以XML格式儲存於記憶體中(使用STREAM物件)。包括:
1. Recordset儲存成XML檔案:ADO 2.1版,直接將recordset的資料,以XML格式儲存成一個XML檔案,使用RS.Save “xxx.xml", adPersistXML指令。
2. Recordset以XML格式輸出到瀏覽器:ADO 2.5版,直接將recordset的資料,以XML格式輸出(Response)到瀏覽器,使用RS.Save Response, adPersistXML指令。
3. Recordset以XML格式儲存於記憶體:ADO 2.5版,將recordset的資料以XML格式儲存於記憶體(使用STREAM物件)中,使用RS.Save ST, adPersistXML指令。
4. 記憶體XML格式資料轉到Recordset:ADO 2.5版,將儲存於記憶體(使用STREAM物件)中XML格式資料轉到recordset中,使用RS.Open ST指令。
STREAM物件
STREAM物件,用於儲存XML格式資料於記憶體中,可使用以下方法:
l rs.Save st, adPersistXML:將recordset的資料以XML格式使用STREAM物件儲存於記憶體中。
l Response.Write st.ReadText:將STREAM物件儲存於記憶體中之XML資料輸出(Response)到瀏覽器中。
l st.Open:開啟STREAM物件。
l st.WriteText objTextStream.ReadAll():將文字字串儲存於STREAM物件記憶體中。
l st.Position = 0:將指標指到STREAM物件記憶體起點。
l rs.Open st:將儲存於STREAM物件記憶體中XML格式資料轉到recordset中。
Recordset儲存成XML檔案
於IIS 4.0之ADO 2.1版(當然可用於IIS 5.0之ADO 2.5版),使用RS.Save “xxx.xml", adPersistXML指令,即可直接將recordset的資料,以XML格式儲存成一個XML檔案。
譬如asp程式碼如下:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("test.mdb")& ";Driver={Microsoft Access Driver(*.mdb)};"
set RS = Server.CreateObject( "ADODB.Recordset" )
RS.Open "select * from PRODUCT", conn1
RS.Save Server.MapPath("test1.xml"), 1 'adPersistXML
rs.close
conn1.close
Response.Redirect "test1.xml"
%>
將test.mdb中PRODUCT資料表的資料先開啟於recordset RS中,再使用RS.Save “test1.xml", adPersistXML指令,以XML格式儲存成一個XML檔案test1.xml,最後重新導向到此新產生的XML檔案。
於瀏覽器執行結果如下,顯示此新產生的XML檔案。
又譬如asp程式碼如下:
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("test.mdb")& ";Driver={Microsoft Access Driver(*.mdb)};"
set RS = Server.CreateObject( "ADODB.Recordset" )
RS.Open "select * from PRODUCT", conn1
strFilename = Server.MapPath("test1.xml")
RS.Save strFilename, 1 'adPersistXML
set objFS = Server.CreateObject("Scripting.FileSystemObject")
set objTextStream = objFS.OpenTextFile(strFilename, 1)
Response.Write objTextStream.ReadAll()
objTextStream.Close()
rs.close
conn1.close
%>
使用Scripting.FileSystemObject,讀取所新產生的XML檔案,於瀏覽器執行結果同上例。
Recordset以XML格式輸出到瀏覽器
於IIS 5.0之ADO 2.5版,使用RS.Save Response, adPersistXML指令,即可直接將recordset的資料,以XML格式輸出(Response)到瀏覽器。
譬如asp程式碼如下:
<%
Response.ContentType = "text/xml"
Response.Expires = 0
%>
<?xml version="1.0" encoding="BIG5" standalone="yes" ?>
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("test.mdb")& ";Driver={Microsoft Access Driver(*.mdb)};"
set objRS = Server.CreateObject( "ADODB.Recordset" )
objRS.Open "select * from PRODUCT", conn1
if Request.ServerVariables("SERVER_SOFTWARE")= "Microsoft-IIS/5.0" then
objRS.Save Response, 1 'adPersistXML
else
dim objFS, strFilename, strTempFolder, objTextStream
set objFS = Server.CreateObject( "Scripting.FileSystemObject" )
strTempFolder = objFS.GetSpecialFolder( TemporaryFolder )+ "\"
strFilename = objFS.GetTempName()
objRS.Save strTempFolder + strFilename, 1 'adPersistXML
set objTextStream = objFS.OpenTextFile(strTempFolder + strFilename, 1)
Response.Write objTextStream.ReadAll()
objTextStream.Close()
objFS.DeleteFile strTempFolder + strFilename, False
end if
%>
將test.mdb中PRODUCT資料表的資料先開啟於recordset RS中,再使用RS.Save Response, adPersistXML指令,直接將recordset的資料,以XML格式輸出(Response)到瀏覽器。
其中使用Request.ServerVariables("SERVER_SOFTWARE")判斷是否使用IIS 5.0("Microsoft-IIS/5.0"),若是則使用RS.Save Response, adPersistXML指令;若不是,則使用objRS.Save “XXX.XML”, adPersistXML先儲存到暫時的XML檔案,再使用objTextStream.ReadAll()讀取XML檔案所有資料使用Response.Write顯示出來。
於瀏覽器執行xmlado3.asp結果如下,顯示輸出(Response)到瀏覽器之畫面。
Recordset以XML格式儲存於記憶體
於IIS 5.0之ADO 2.5版,使用RS.Save ST, adPersistXML指令,即可將recordset的資料以XML格式儲存於記憶體(使用STREAM物件)中。
譬如asp程式碼如下:
<%
Response.ContentType = "text/xml"
Response.Expires = 0
%>
<?xml version="1.0" encoding="BIG5" standalone="yes" ?>
<%
Set conn1 = Server.CreateObject("ADODB.Connection")
conn1.Open "DBQ="& Server.MapPath("test.mdb")& ";Driver={Microsoft Access Driver(*.mdb)};"
set rs = Server.CreateObject( "ADODB.Recordset" )
rs.Open "select * from PRODUCT", conn1
' ADOToXML
set st = Server.CreateObject( "ADODB.Stream" )
rs.Save st, 1 'adPersistXML
Response.Write st.ReadText
%>
將test.mdb中PRODUCT資料表的資料先開啟於recordset RS中,再使用RS.Save ST, adPersistXML指令,即可將recordset的資料以XML格式儲存於記憶體(使用STREAM物件)中,使用st.ReadText讀取記憶體所有XML資料經過Response.Write顯示出來。
於瀏覽器執行結果如下,顯示此所有XML資料。
記憶體XML格式資料轉到Recordset
於IIS 5.0之ADO 2.5版,使用RS.Open ST指令,即可將儲存於記憶體(使用STREAM物件)中XML格式資料轉到recordset中。
譬如asp程式碼如下:
<%
set objFS = Server.CreateObject("Scripting.FileSystemObject")
xmlfile = Server.MapPath("test.xml")
set objTextStream = objFS.OpenTextFile(xmlfile, 1)
set rs = Server.CreateObject( "ADODB.Recordset" )
set st = Server.CreateObject( "ADODB.Stream" )
st.Open
st.WriteText objTextStream.ReadAll()
st.Position = 0
rs.Open st
%>
<TABLE BORDER=1>
<% Do While Not RS.EOF %>
<TR>
<% For i = 0 to RS.Fields.Count - 1 %>
<TD BGCOLOR="f7efde" VALIGN=TOP><% = RS(i)%></TD>
<% Next %>
</TR>
<%
RS.MoveNext
Loop
RS.Close
%>
</TABLE>
首先使用Scripting.FileSystemObject讀取XML檔案,再使用st.WriteText objTextStream.ReadAll()儲存於記憶體(使用STREAM物件)中,又使用RS.Open ST指令,即可將儲存於記憶體(使用STREAM物件)中XML格式資料轉到recordset中,最後使用RS(i)於瀏覽器顯示出來。
於瀏覽器執行結果如下,顯示此XML檔案資料。
中文部份顯示成亂碼,請讀者試試是否可解決。
分享到:
相关推荐
3. ASP与XML结合:探讨如何在ASP中创建和读取XML文件,以及如何使用ASP的XML对象模型处理XML数据。 4. 数据绑定和XML数据源:讲述如何将XML数据绑定到ASP控件,实现在网页上动态展示XML内容。 5. XSLT和XPath:介绍...
《ASP与XML高级编程》源码 wrox出版社出版, 文件列表 Chapter 03 ..........\contacts.xml ..........\invalid_contacts.xml ..........\update_booklist.xml ..........\Verifire.asp Chapter 05 ............
2. **XML语法与解析**:讲解XML的基本元素、属性、命名空间等概念,以及如何使用DOM(Document Object Model)、SAX(Simple API for XML)等解析器在ASP中解析XML文件。 3. **ASP与XML结合应用**:展示如何在ASP中...
XML与数据库之间的关系密切。在小规模数据应用中,XML可以直接作为轻量级数据库使用,尤其在需要快速读取和写入少量数据时,避免了大型数据库引擎的开销。同时,XML也可作为大型数据库如SQL Server、Oracle、MySQL、...
当ASP与XML结合时,可以构建出强大的Web应用程序,因为XML提供了数据的组织和传输,而ASP则负责处理这些数据并生成动态内容。 在“asp与xml开发案例”中,我们将会深入学习如何利用XML作为数据存储和传输的载体,...
ASP(Active Server Pages)与XML(eXtensible Markup Language)是两种在Web开发中广泛使用的技术。ASP是一种服务器端脚本环境,用于创建动态、交互式的网页,而XML则是一种数据交换和存储的标准,强调数据的结构化...
《ASP与XML网站实作大全》是一本专为IT从业者和学习者编写的教程,旨在深入探讨如何结合ASP(Active Server Pages)技术和XML(Extensible Markup Language)来构建功能丰富的动态网站。本书全面覆盖了ASP编程基础、...
《ASP与XML网站实作大全》是一本深入探讨如何利用ASP(Active Server Pages)和XML(eXtensible Markup Language)技术构建高效、灵活且可扩展的网站的指南。本书全面覆盖了这两种技术的结合应用,旨在帮助读者掌握...
**ASP与XML高级编程**是IT领域中一个重要的主题,主要涵盖了XML(可扩展标记语言)的基础知识及其在ASP(Active Server Pages)环境中的高级应用。XML作为一种数据交换和存储的标准,广泛应用于Web服务、数据集成和...
ASP(Active Server Pages)与XML(eXtensible Markup Language)是Web开发中的两种核心技术,它们在构建动态、数据驱动的网站中起着至关重要的作用。ASP是一种服务器端脚本环境,它允许开发者使用诸如VBScript或...
4. **ADO.NET与XML**:在ASP.NET中,ADO.NET提供了一套接口来处理XML数据,包括DataSet、XmlDataDocument等,它们可以方便地将XML数据与数据库数据进行交互。 5. **XML配置文件**:ASP应用可以使用XML作为配置文件...
《ASP与XML高级编程》是一本深度探讨XML与ASP结合使用的专业书籍,旨在帮助开发者掌握XML的核心概念和ASP的高级编程技巧。XML(eXtensible Markup Language)是一种用于标记数据的语言,它允许数据以结构化的方式...
ASP与XML 高级编程(PDG)1
本篇文章将深入探讨如何在ASP中添加和删除XML信息,以及与之相关的知识点。 **1. ASP与XML的基础知识** - **ASP基础**: ASP文件是包含服务器端脚本的HTML页面,这些脚本在服务器上执行,然后将结果发送到客户端...
总结一下,ASP与XML的结合使得开发者能够轻松地在服务器端处理和管理结构化的数据。通过学习和实践这些操作,你不仅可以提升Web开发技能,还能为构建更高效、灵活的Web应用程序打下坚实的基础。
XML(eXtensible Markup Language)是一种用于标记数据的...通过深入学习"XML与ASP网站实作大全3",开发者能够掌握XML与ASP的协同工作,提升Web应用的开发能力和复杂性处理,从而创建更强大、更具交互性的互联网产品。
2. **ASP与XML交互**:在ASP中,我们使用MSXML库(Microsoft XML Library)提供的对象来处理XML,例如DOMDocument对象。DOM(Document Object Model)是一种树形结构,可以表示整个XML文档。通过DOM,我们可以使用...
当ASP与XML结合时,可以实现对XML文件的数据读取、写入和处理,从而提供更灵活的数据管理能力。 ASP操作XML数据的关键在于XMLDOM(XML Document Object Model)对象,它是ASP内建的,允许我们解析和操作XML文档。...
### 知识点三:XML与ASP的协同应用 #### 3.1 XML(Extensible Markup Language) - **XML的作用**:用于存储和传输数据,是一种标记语言,可用于创建可扩展的标记语言文档。 - **XML文件结构**:由元素组成,每个...
综上所述,"XML与ASP网站实作大全"这一主题涵盖了从XML和ASP的基础知识,到它们在实际网站开发中的应用,包括数据处理、动态页面生成、数据交换和安全防护等多个方面。对于想要深入学习和掌握这两种技术的开发者来说...