·您的位置: 首页 » 资源教程 » 编程开发 » ASP » 如何用ASP动态生成XML文件

如何用ASP动态生成XML文件

类别: ASP教程  评论数:0 总得分:0
Function ReplaceChar ( FstrSource )
dim strRet
if IsNull(FstrSource) then
FstrSource = ""
end if
strRet = Replace ( FstrSource , "&" , "&" )
strRet = Replace ( strRet , "<" , "&lt;" )
strRet = Replace ( strRet , ">" , "&gt;" )
strRet = Replace ( strRet , """" , "&quot;" )
strRet = Replace ( strRet , "\'" , "&apos;" )
ReplaceChar = strRet
End Function
function RstToXML (FrstRst, FstrRstName)
dim strSpace \'space string behand of element
dim intLevel \'level of the element
dim strXML \'the return string(xml string)
dim intRstField
dim strShortDate

\'document level
intLevel = 0
strSpace = space (intLevel * 2)
if Len(FstrRstName)>0 then
strXML=strSpace & "<" & FstrRstName & ">" & vbCR
intLevel = intLevel + 1
strSpace = space(intLevel*2)
end if
if FrstRst.EOF then
strXML = strXML&strSpace & "<Record"
for nCount=0 to FrstRst.Fields.Count-1
strXML = strXML & space(1)&FrstRst.Fields(nCount).Name&"=\'\'"
next
strXML = strXML & "/>" &vbCR
if Len(FstrRstName)>0 then
strXML=strXML&strSpace & "</" & FstrRstName & ">" & vbCR
end if
RstToXML=strXML
exit function
end if

\' now move in one level
intLevel = intLevel + 1
strSpace = space (intLevel * 2)

\' loop through the records
dim strTemp
FrstRst.MoveFirst
do while not FrstRst.EOF
strTemp = ""
\'loop through the fields
\'strXML = strXML & strSpace & "<Record"
for each objField in FrstRst.Fields
\'set objField = FrstRst.Fields(intRstField)
strTemp = strTemp & space (1) & objField.Name & "="
strTemp = strTemp & """" & ReplaceChar(objField.Value) & """"
end if
next
strXML = strXML & "<Record "&strTemp& "/>" & vbCR
FrstRst.MoveNext
loop

intLevel=intLevel-1
strSpace=space(intLevel * 2)

if Len(FstrRstName)>0 then
strXML = strXML & strSpace & "</" & FstrRstName & ">" & vbCR
end if

RstToXML = strXML

end function





getInfo.asp
========================================
<?xml version="1.0" encoding="gb2312"?>
<root>
<%
set conn = server.CreateObject("ADODB.Connection")
conn.Open "FILEDSN=test.dsn"

set facultyRst = conn.Execute("select * from faculty")
do while not facultyRst.eof
strFaculty = facultyRst("name")

set classRst = conn.Execute("select count(id) as classcount from recruitclass where recruityear=" + cstr(year(now)) + " and faculty=\'" + strFaculty + "\'")
set maleRst = conn.Execute("select count(id) as malecount from newstudent where recruityear=" + cstr(year(now)) + " and faculty=\'" + strFaculty + "\' and gender=\'男\'")
set femaleRst = conn.Execute("select count(id) as femalecount from newstudent where recruityear=" + cstr(year(now)) + " and faculty=\'" + strFaculty + "\' and gender=\'女\'")
%>
<newstudent faculty="<%=strFaculty%>" class="<%=classRst("classcount")%>" male="<%=maleRst("malecount")%>" female="<%=femaleRst("femalecount")%>"/>

<%
facultyRst.MoveNext
loop
%>
</root>




<%
dim strConn, strSQL, rs, n, sFileName
\'change the server name, if it is remote, change the UID and PWD to your own
strConn = "Provider=SQLOLEDB;Server=localhost;Database=pubs;UID=sa;PWD=;"
strSQL = "SELECT * FROM employee"
set rs = Server.CreateObject("ADODB.Recordset")
rs.open strSQL, strConn, 1, 1
sFileName = "c:tempemployee.xml"
rs.save sFileName, 1
rs.close
set rs =nothing
%>

or

<%
Response.ContentType = "text/xml"
dim strConn, strSQL, rs, n, sFileName
\'change the server name, if it is remote, change the UID and PWD to your own
strConn = "Provider=SQLOLEDB;Server=localhost;Database=pubs;UID=sa;PWD=;"
strSQL = "SELECT * FROM employee"
set rs = Server.CreateObject("ADODB.Recordset")
rs.open strSQL, strConn, 1, 1
sFileName = "c:tempemployee.xml"
rs.save Response, 1
rs.close
set rs =nothing
%>
-= 资 源 教 程 =-
文 章 搜 索
关键词:
类型:
范围:
纯粹空间 softpure.com
Copyright © 2006-2008 暖阳制作 版权所有
QQ: 15242663 (拒绝闲聊)  Email: faisun@sina.com
 纯粹空间 - 韩国酷站|酷站欣赏|教程大全|资源下载|免费博客|美女壁纸|设计素材|技术论坛   Valid XHTML 1.0 Transitional
百度搜索 谷歌搜索 Alexa搜索 | 粤ICP备19116064号-1