微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

遍历这个集合

方法

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下的许多功能了。

 

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

飞飞,你怎么不介绍一下@的用法,没了这个,很多事不方便。

xml,有人也称之为数据压缩技术,顾名思义,xml是可以充当数据库来用。

所以,我们可以把xml看成是“小型的数据库”。为什么说是小型呢?因为xml本身的功能及应用方便,与数据库还是存在着一定的差别。那我们为什么要使用xml呢?因为,有时候我们的一些应用程序虽然进行数据存取,但是,如果使用数据库的话,显行有些不够灵活,方便。这个时候,我们就应该结合xml来使用。

xml既然可以看成是数据库,那它的第一步工作就当然是创建链接对象了。(以ASP+xml为例)

创建方法链接数据库一样,用server.createobject为创建。

方法如下:

set xmlDoc= Server.CreateObject(”microsoft.xmldom”)

xmlDoc.async=false

xmldata=数据源绝对路径

xmlDoc.load xmldata ’这里使用load方法进行链接

既于xml的数据格式是比较人性化的,可以由于人为或其它的原因,引起数据格式不合法,这时如果继续使用的话,会引起程序出程,这样,我们往往在创建好链接对象后进行数据格式验证。

方法如下:

if xmlDoc.parseError.errorCode<>0 then

   ….错误处理

<% 

‘—————————————————————- 

‘程序简介: 完成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,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  

%>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐