使用ADO生成XML记录集(翻译自David Sussman) 下面这个函数可以把一个数据库中数据直接转换成XML可读的文档(主要使用在ASP中) 这个函数可以看作是ADO方法中的GetString方法(它主要用来将ADO的记录集转换成 HTML格式)的补充. <% Function RecordsetToXML (oRec, sName) Dim oFld Dim sXML Dim sSpaces Dim sNames sSpaces = Space (iLevel * 2) If Right(sName, 1) = "s" Then sNames = sName sName = Left (sName, Len(sName) - 1) Else sNames = sName & "s" End If sXML = sSpaces & "<" & sNames & ">" & vbCR iLevel = iLevel + 1 sSpaces = Space (iLevel * 2) oRec.MoveFirst While Not oRec.EOF sXML = sXML & sSpaces & "<" & sName & ">" & vbCR For Each oFld In oRec.Fields If oFld.Type = adChapter Then Set oChapter = oFld.Value If Not oChapter.EOF Then iLevel = iLevel + 1 sXML = sXML & RecordsetToXML (oChapter, oFld.Name) iLevel = ilevel - 1 End If Else sXML = sXML & sSpaces & " " & "<" & oFld.Name & ">" & oFld.Value & "</" & oFld.Name & ">" & vbCR End If Next sXML = sXML & sSpaces & "</" & sName & ">" & vbCR oRec.MoveNext Wend iLevel = iLevel - 1 sSpaces = Space (iLevel * 2) sXML = sXML & sSpaces & "</" & sNames & ">" & vbCR RecordsetToXML = sXML End Function %> 上面就是完整的代码段,可以看出可移植性能很不错的,你只要在 你的页面中包含该程序就可以使用这个技术了。 例如: <!--METADATA TYPE="typelib" FILE="c:\program files\common files\system\ado\msado15.dll --> <!-- #INCLUDE FILE="RecordsetToXML.asp" --> <% Set oRec = Server.CreateObject ("ADODB.Recordset") oRec.Open "authors", "DSN=pubs" Response.Write RecordsetToXML (oRec, "Authors") oRec.Close %> 下面就是自动输出的XML文件 <Authors> <Author> <au_id>172-32-1176</au_id> <au_lname>Whiter</au_lname> <au_fname>Bob</au_fname> <phone>408 496-7223</phone> <address>10932 Bigge Rd.</address> <city>Menlo Park</city> <state>CA</state> <zip>94025</zip> <contract>True</contract> </Author> <Author> <au_id>213-46-8915</au_id> <au_lname>Green</au_lname> . . . </Author> </Authors> 绑定数据 下面的部分是如何将XML中的数据通过RDS的数据绑定技术 就可以直接在IE5中浏览这些 XML中的数据了。 第一步是使用XML的数据岛来定义数据: <XML ID="dsoAuthors"> <Authors> <Author> <au_id>172-32-1176</au_id> </Author> <Author> <au_id>213-46-8915</au_id> <au_lname>Green</au_lname> . . . </Author> </Authors> </XML> 第二步是使用XML和RDS技术显示数据 <XML ID="dsoAuthors" SRC="authors.xml"> </XML> <TABLE DATASRC="#dsoAuthors" CELLSPACING=10> <TR ID="tblSales" vAlign="TOP"> <TD><SPAN DATAFLD="au_fname"></SPAN></TD> <TD><SPAN DATAFLD="au_lname"></SPAN></TD> <TD><SPAN DATAFLD="phone"></SPAN></TD> <TD><SPAN DATAFLD="city"></SPAN></TD> <TD><SPAN DATAFLD="state"></SPAN></TD> </TABLE> (出处:不详 ) 
|