對於小資料量,xml檔案在檢索更新上於ACCESS有很多優勢。
我曾經測試過不用資料庫,把網站的會員資訊,商品資料資訊,交易資訊,網站定製資訊全部存放在三個xml檔案中,運行結果十分正常,感覺上比資料庫快多了,不過沒有作測試,不能確定。
下面說一下建立,查詢,修改等對xml操作的主要方法
'建立DOM對象
set objDom=server.CreateObject("MicroSoft.XMLDom")
'取得xml資料
'方法1 取得xml檔案的xml資料
objDom.load("c:\test.xml")
'方法2 取得xml資料串的資料
objDom.loadxml("<people><man name="sd"/></people>")
'建立一個節點對象
Set Newnode=objDom.CreateElement("people")
'給這個節點赴值
Newnode.Text="人"
' 給這個節點添加屬性
Set NewAttribute=objDom.CreateNode("attribute","name","")
NewAttribute.Text= "張三"
Newnode.SetAttributeNode NewAttribute
'給這個節點添加子節點
Set NewnodeChild=objDom.CreateElement("address")
Newnode.appendChild NewnodeChild
'儲存這個節點對象
objDom.appendChild Newnode
objDom.save("c:\test.xml")
'尋找一個節點對象
set objtofind=objdom.documentElement.SelectSingleNode("//people/man")
'取出這個節點對象的 節點名,節點值,某個屬性值,和全部的xml
nodename=objtofind.nodename
nodevalue=objtofind.text
objtofind.GetAttributeNode("name").NodeValue '屬性名稱為name的屬性值
'取出一個屬性節點對象
set objattrtofind=objdom.documentElement.SelectSingleNode("//people/man"). GetAttributeNode("name")
'取出這個節點的屬性名稱,屬性值
nodeattrname=objattrtofind.nodename
nodeattrvalue=objattrtofind.nodevalue
'刪除一個節點對象
set objnode=objdom.documentElement.SelectSingleNode("//people/man") '要刪除的節點
set objparentnode=objdom.documentElement.SelectSingleNode("//people") '要刪除的節點的父節點
objparentnode.removeChild objnode
'取出一個節點的位元組點集合
set objnodes=objdom.documentElement.SelectSingleNode("//people/man").ChildNodes
遍曆這個集合
方法1
for each element in objnodes
response.write element.nodename 位元組點名
response.write element.text 位元組點值
next
方法2
domlength=objnodes.length
for i = 0 to domlength-1
response.write objnodes.childnodes(i).nodename 位元組點名
response.write objnodes.childnodes(i).text 位元組點值
next
'取出一個節點的屬性集合
set objnodes=objdom.documentElement.SelectSingleNode("//people/man").GetAttributeNode("name").attributes
遍曆這個集合
for each element in objnodes
response.write element.nodename 屬性名稱
response.write element.nodevalue 屬性值
next
等能夠熟練的運用xmldom對象來操作xml檔案了,就可以享受xmlhttp對象來實現asp下的許多功能了。