站内搜索

ASP通过XMLDom在服务器端操作XML文件的主要方法和实现

我曾经测试过不用数据库,把网站的会员信息,商品数据信息,交易信息,网站定制信息全部存放在三个xml文件中,运行结果十分正常,感觉上比数据库快多了。
测试页面:http://www.xfok.com/test/xmlvsdb/test.asp

下面说一下创建,查询,修改等对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
node&#118alue=objtofind.text
objtofind.GetAttributeNode("name").Node&#118alue '属性名为name的属性值

'取出一个属性节点对象
set objattrtofind=objdom.documentElement.SelectSingleNode("//people/man"). GetAttributeNode("name")
'取出这个节点的属性名,属性值
nodeattrname=objattrtofind.nodename
nodeattr&#118alue=objattrtofind.node&#118alue

'删除一个节点对象
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.node&#118alue 属性值
next

等能够熟练的运用xmldom对象来操作xml文件了,就可以享受xmlhttp对象来实现asp下的许多功能了。

  • 上一篇:服务器端的包含指令
  • 下一篇:文件操作类