set xmldoc=server.CreateObject("msxml2.domdocument")
cmd.Properties("Output Stream") = xmldoc
cmd.Execute ,,1024
getXml=xmldoc.xml
set cmd=nothing
set xmldoc=nothing
set stm=nothing
end function
strQuery="select * from test1 for xml auto"
Response.Write getXml(strQuery,conn)
%>
1.asp
<%
dim strConn,conn,rs,xmldoc,xsldoc
dim strSql
strTableName="test1"
strConn="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=test;Data Source=SHISM;password="
set conn=server.CreateObject("adodb.connection")
conn.Open strConn
strSql="select * from test1"
set rs=server.CreateObject("adodb.recordset")
rs.Open strSql,conn,1,1
set xmldoc=server.CreateObject("msxml2.domdocument")
xmldoc.async=false
rs.Save xmldoc,1
set xsldoc=server.CreateObject("msxml2.domdocument")
xsldoc.async=false
xsldoc.load server.MapPath("toXml.xsl")
解决了没有?
<script language="jscript" runat="server">
var conn = new ActiveXObject("adodb.connection")
conn.open("Provider=Microsoft.jet.oledb.4.0;data source="+Server.MapPath("db.mdb"))
var sql = "select distinct province from allcity"
var rs = conn.Execute(sql)
var xmldoc = new ActiveXObject("Microsoft.XMLDOM")
xmldoc.async = false
var xmlhead = xmldoc.createProcessingInstruction('xml','version="1.0" encoding="GB2312"')
xmldoc.insertBefore(xmlhead,xmldoc.childNodes(0))
var root = xmldoc.createElement("root")
xmldoc.appendChild(root)
do{
var province = xmldoc.createElement("province")
province.text = rs("province")
root.appendChild(province)
var osql = "select distinct city from allcity where province='"+rs("province")+"'"
var ors = conn.Execute(osql)
do{
var city = xmldoc.createElement("city")
city.text = ors("city")
province.appendChild(city)
var mysql = "select college from allcity where city='"+ors("city")+"'"
var myrs = conn.Execute(mysql)
do{
var college = xmldoc.createElement("college")
college.text = myrs("college")
city.appendChild(college)
myrs.movenext()
}while(!(myrs.eof||myrs.bof))
myrs.Close()
ors.movenext()
}while(!(ors.eof||ors.bof))
ors.Close()
rs.movenext()
}while(!(rs.eof||rs.bof))
xmldoc.save(Server.MapPath("allcity.xml"))
Response.Write("创建成功!")
</script>
Sub Class_Initialize()
set xmldoc = Server.CreateObject("Microsoft.XMLDOM")
xmldoc.async = fasle
End Sub
Sub Class_Terminate()
set xmldoc = Nothing
End Sub
Public Property Let filePath(str)
xmlfile = str
End Property
Sub getRs(rs)
dim xmlhead
dim pNode,sNode
dim aNode,tNode
dim tableName
dim rf
dim i
set xmlhead = xmldoc.createProcessingInstruction("xml","version=""1.0"" encoding=""GB2312""")
xmldoc.insertBefore xmlhead,xmldoc.childNodes(0)
tableName = split(rs.Source,chr(32))
set pNode = xmldoc.CreateElement(tableName(3))
xmldoc.appendChild pNode
redim aNode(rs.Fields.Count-1)
do while not rs.eof
set sNode = xmldoc.CreateElement(tableName(3)&"list")
pNode.appendChild sNode
for i=0 to rs.Fields.Count-1
if rs.Fields(i).Name=tableName(3) then
tNode = rs.Fields(i).Name&"Child"
else
tNode = rs.Fields(i).Name
end if
set aNode(i) = xmldoc.CreateElement(tNode)
sNode.appendChild aNode(i)
if rs.Fields(i).value<>"" then
aNode(i).text = rs.Fields(i).value
end if
next
rs.movenext
loop
End Sub
Function saveFile()
on error resume next
xmldoc.save xmlfile
saveFile = (err.number=0)
End Function
End Class
%>
调用,把调用recordset就可以了。
<%
dim conn
set conn = Server.CreateObject("adodb.connection")
conn.open "Provider=Microsoft.jet.oledb.4.0;data source="&Server.MapPath("db.mdb")
dim rs,sql
set rs = Server.CreateObject("adodb.recordset")
sql = "select * from news"
rs.Open sql,conn,3,2
dim ixml
dim xf
set ixml = new autoXML
xf = "test.xml"
ixml.filePath = Server.MapPath(xf)
ixml.getRs(rs)
if ixml.saveFile() then
response.write "<a href=""" & Server.URLEncode(xf) & """>保存完毕</a>"
else
response.write "保存文件错误"
end if
set ixml = Nothing
rs.close
set rs = Nothing
%>