您现在的位置: 军旅同心-旅游自驾-军旅文学 >> 读书赏析 >> 学习园地 >> 电脑网络 >> 技术文章 >> 正文
如何用Asp动态生成xml文件
作者:采集员 文章来源:来源于网络 点击数: 更新时间:2005-9-10 13:44:25

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: empemployee.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: empemployee.xml"
rs.save Response, 1
rs.close
set rs =nothing
%>

 


更多
免责声明:作品版权归所属媒体与作者所有!!本站刊载此文不代表同意其说法或描述,仅为提供更多信息。如果您认为我们侵犯了您的版权,请告知!本站立即删除。有异议请联系我们。
文章录入:烟灰缸    责任编辑:烟灰缸 
  • 上一篇文章:
  • 下一篇文章:
  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 网站地图 | 版权申明 | 网站公告 | 管理登录 |