DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> 讓XML在ASP中發揮其長處
讓XML在ASP中發揮其長處
編輯:XML詳解     

微軟的ASP.Net跟XML緊密結合,不可分割,可見XML在日後程序設計中的重要性。

在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

'函數入口為一個節點對象,出口是在入口節點對象的基礎做為根節點,返回的第i個子節點對象(OBJ)

function GetObjChildNode(obj,i)

if IsObject(obj) then

if obj.ChildNodes.length>0 then

set GetObjChildNode=obj.ChildNodes(i)

end if

end if

end function

'如果一個節點對象(OBJ)有孩子節點,該函數返回其孩子個數,即記錄集長度

function GetObjChildNodesNumber(obj)

if obj.ChildNodes.length>0 then

GetObjChildNodesNumber=obj.ChildNodes.length

else

GetObjChildNodesNumber=0

end if

end function

'獲取一個節點對象(OBJ)的屬性值,函數入口為屬性名

function GetObjAtrValue(obj,atrributename)

GetObjAtrValue=obj.GetAttributeNode(atrributename).Nodevalue

end function

'獲取一個節點對象(OBJ)的屬性值,函數入口為obj名稱

function GetObjText(obj)

GetObjText=obj.text

end function

'遍歷一個節點所有的子節點

function OverVIEwNodes(elementname)

end function

'獲取一個節點屬性的名稱

function GetNodeAtrributeName()

end function

'獲取一個子節點的名稱

function GetChildNodeName()

end function

'Loaddocument("GetHotelDetailsResponse.XML")

'response.Write(FindAtrributeValue("Image","path")&"<br>")

'response.Write(GetNodesNumber("RoomType")&"<br>")

'response.Write(GetObjChildNodes("RoomType",2).nodename&"<br>")

%>

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved