ASP操作XML文件的主要方法和实现

 ASP通过XMLDom在服务器端操作XML文件的主要方法和实现
对于小数据量,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下的许多功能了。
本文来自:网页教学网(www.webjx.com)原文链接:http://www.webjx.com/ASP/asp_2008_03_07_4701.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<% '---------------------------------------------------------------- '程序简介: 完成asp语言对XML文档中指定节点文本的增加、删除、修改、查看 '入口参数: 无 '出口参数: 无 '------------------------------------------------ '函数名字:ConnectXml() '入口参数: filename 需要连接或打开的xml文件名 '出口参数: 无 '返回值 :ConnectXml=0,XMLMorntekDocument就是一个成功装载XML文档的对象了。 ' ConnectXml<>0,则打印错误信息strError '------------------------------------------------ dim XMLMorntekDocument function ConnectXml(filename) dim strSourceFile strSourceFile = Server.MapPath(filename) Set XMLMorntekDocument = Server.CreateObject("Microsoft.XMLDOM") XMLMorntekDocument.async = false XMLMorntekDocument.load(strSourceFile) ConnectXml=XMLMorntekDocument.parseerror.errorcode if XMLMorntekDocument.parseerror.errorcode<>0 then strError="<h2>error"&XMLMorntekDocument;.parseerror.errorcode&"</h2>" strError=strError&XMLMorntekDocument;.parseerror.reason&"<br>" strError=strError&XMLMorntekDocument;.parseerror.url&"<br>" strError=strError&XMLMorntekDocument;.parseerror.line&"<br>" strError=strError&XMLMorntekDocument;.parseerror.filepos&"<br>" strError=strError&XMLMorntekDocument;.parseerror.srcText&"<br>" response.write strError end if end function '------------------------------------------------ '函数名字:CloseXml() '入口参数: 无 '出口参数: 无 '------------------------------------------------ function CloseXml(XMLMorntekDocument) if IsObject(XMLMorntekDocument) then set XMLMorntekDocument=nothing end if end function '------------------------------------------------ '函数名字:SelectXmlNodeText(elementname) '入口参数: elementname 元素的名字 '出口参数: 无 网页教学网 '------------------------------------------------ function SelectXmlNodeText(elementname) elementname="//"&elementname; temp=XMLMorntekDocument.selectSingleNode(elementname).text selectXmlNodeText= server.htmlencode(temp) end function '------------------------------------------------ '函数名字:InsertXmlNodeText(befelementname,elementname,elementtext) '入口参数: elementname 插入的元素的名字 ' befelementname在此元素的名字前面插入元素 ' elementtext 插入的元素的文本 '出口参数: 无 '------------------------------------------------ function InsertXmlNodeText(befelementname,elementname,elementtext) dim befelement,element set befelement=XMLMorntekDocument.selectSingleNode("//"&befelementname;) set element= XMLMorntekDocument.createelement(elementname) befelement.insertBefore element,befelement.firstchild element.text=elementtext end function '------------------------------------------------ '函数名字:UpdateXmlNodeText(elementname,newelementtext) '入口参数: elementname 元素的名字 ' newelementtext元素的新文本 '出口参数: 无 '------------------------------------------------ function UpdateXmlNodeText(elementname,newelementtext) dim element set element=XMLMorntekDocument.selectSingleNode("//"&elementname;) element.text=newelementtext end function '------------------------------------------------ '函数名字:DeleteXmlNodeText(elementname) '入口参数: elementname 元素的名字 '出口参数: 无 '------------------------------------------------ function DeleteXmlNodeText(elementname) XMLMorntekDocument.selectSingleNode("//"&elementname;).text ="" end function %>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值