对于小数据量,xml文件在检索更新上于access有很多优势。
我曾经测试过不用数据库,把网站的会员信息,商品数据信息,交易信息,网站定制信息全部存放在三个xml文件中,运行结果十分正常,感觉上比数据库快多了,不过没有作测试,不能确定。(http://stone.yesku.net)
下面说一下创建,查询,修改等对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下的许多功能了。
