<!-- METADATA TYPE="TypeLib" UUID="00000200-0000-0010-8000-00AA006D2EA4" --> <% Class DataSet Private Recordset Public TableName, FieldCount Public XmlString
Private TableMap
Private Sub Class_Initialize ' 设置 Initialize 事件。 Set Recordset = Server.CreateObject("ADODB.RecordSet") Recordset.ActiveConnection = "Provider=MSDAOSP; Data Source=Msxml2.DSOControl;" End Sub
Private Sub Class_Terminate ' 设置 Terminate 事件。 Set Recordset = Nothing End Sub
Function ReadXml(Name, filespec) TableName = Name Recordset.Open(filespec) End Function
Function GetXml() Call GetTableMap() Do While not Recordset.Eof XmlString = XmlString + GetXmlRow(Recordset.Fields) Recordset.MoveNext() Loop Recordset.Close XmlString = XmlRow(TableName, XmlString) GetXml = XmlString End Function
Sub GetTableMap() IF (not Recordset.Eof) Then FieldCount = Recordset.Fields.Count - 2 Execute("ReDim TableMap("& FieldCount &")") For i = 0 To FieldCount TableMap(i) = Recordset.Fields.Item(i).Name Next End IF End Sub
Function GetXmlRow(Item) Dim XmlRowString For i = 0 To FieldCount XmlRowString = XmlRowString + XmlField(TableMap(i), Item(i).Value) Next GetXmlRow = XmlRow("Row", XmlRowString) End Function Function XMlEncode(XmlString) XmlString = Replace(XmlString, "<", "<") XmlString = Replace(XmlString, ">", ">") XMlEnCode = XmlString End Function
Function XmlField(NodeName, NodeValue) XmlField = "<"+ NodeName +">"+ XMlEncode(NodeValue) +"</"+ NodeName +">" End Function
Function XmlRow(NodeName, NodeValue) XmlRow = "<"+ NodeName +">"+ NodeValue +"</"+ NodeName +">" End Function
End Class
Dim ds : Set ds = new DataSet Call ds.ReadXml( "News", Server.MapPath("news.xml") )
Response.ContentType = "text/xml" Response.Write(ds.GetXml())
Set ds = Nothing %> 
|