让XML在ASP中发挥其长处

时间:2007-01-24 20:26:05   来源:网奇  作者:  点击:次  出处:技术无忧
关键字:ASP XML 配置文件 生成HTML

在ASP中,也能让XML发挥其优点。例如像.NET那样写一个XML配置文件,在程序中读取,或者将一些数据量不

 
大又经常访问的数据写入到XML中,经过转换后生成HTML。这样的话能够减少程序与数据库的频繁连接,提高网站的运行速度。


下面是从数据库中读取数据,并生成XML的一段代码:

<%

response.ContentType = "text/xml"

set conn=Server.CreateObject("ADODB.Connection")

conn.provider="Microsoft.Jet.OLEDB.4.0;"

conn.open server.mappath("/db/database.mdb")

sql="select fname,lname from tblGuestBook"

set rs=Conn.Execute(sql)

rs.MoveFirst()

response.write("<?xml version='1.0' encoding='ISO-8859-1'?>")

response.write("<guestbook>")

while (not rs.EOF)

response.write("<guest>")

response.write("<fname>" & rs("fname") & "</fname>")

response.write("<lname>" & rs("lname") & "</lname>")

response.write("</guest>")

rs.MoveNext()

wend

rs.close()

conn.close()

response.write("</guestbook>")

%>
下面是作者搜集和整理后的一些读取XML文件的公用函数:


<%

 
'解析一个xml文件的公用函数集合

dim document

'装载一个xml文档,函数名Loaddocument(文件名)

function LoadDocument(filename)

xmlfile=server.Mappath(filename)

Set document = Server.CreateObject("Microsoft.XMLDOM")

document.async = false

document.load(xmlfile)

end function

'查询一个节点里的文本内容,函数名SelectXmlNodeText(节点名称)

function SelectXmlNodeText(elementname)

elementname="//"&elementname

temp=document.selectSingleNode(elementname).text

selectXmlNodeText= server.htmlencode(temp)

end function

'根据属性名查找一个节点的属性值,函数名FindAtrributeValue(节点名称,属性名称)

function FindAtrributeValue(elementname,atrributename)

elementname="//"&elementname

atrributename=atrributename

set NodeObj=document.selectSingleNode(elementname)

FindAtrributeValue=NodeObj.GetAttributeNode(atrributename).Nodevalue

end function

'取得某个节点的子节点的个数,函数名GetNodesNumber(节点名称)

function GetNodesNumber(elementname)

elementname="//"&elementname

set objnodes=document.SelectSingleNode(elementname).ChildNodes

GetNodesNumber=objnodes.length

'set objnodes=nothing

end function

'以一个OBJ的形式返回一个节点的第I个子节点,函数名GetObjChildNode(根节点名称,参数I)

function GetObjChildNodes(elementname,i)

elementname="//"&elementname

set objnodes=document.SelectSingleNode(elementname)

if objnodes.ChildNodes.length<i then

response.Write("参数越界")

else

set GetObjChildNodes=objnodes.childNodes(i-1)

end if

end function

技术 无忧 pc51.Net


 1/2    1 2 ›› ›|

相关文章

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面