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

 

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  

%>

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

相关推荐


数组的定义 Dim MyArray MyArray = Array(1‚5‚123‚12‚98) 可扩展数组 Dim MyArray() for i = 0 to 10
\'参数: \'code:要检测的代码 \'leixing:html或者ubb \'nopic:代码没有图片时默认值
演示效果: 代码下载: 点击下载
环境:winxp sp2 ,mysql5.0.18,mysql odbc 3.51 driver 表采用 myisam引擎。access 2003  不同的地方: 
其实说起AJAX的初级应用是非常简单的,通俗的说就是客户端(javascript)与服务端(asp或php等)脚本语言的数据交互。
<% ’判断文件名是否合法 Function isFilename(aFilename)  Dim sErrorStr,iNameLength,i  isFilename=TRUE
在调用的时候加入判断就行了. {aspcms:navlist type=0 } {if:[navlist:i]<6} < li><a href=\"[navlist:link]\" target=\"_top\">[navlist:name]</a> </li>
导航栏调用 {aspcms:navlist type=0}     <a href=\"[navlist:link]\">[navlist:name]</a>
1.引入外部文件: {aspcms:template src=infobar.html} 2.二级下拉菜单 <ul class=\"nav\">
downpic.asp页面:  <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
Cookies是数据包,可以让网页具有记忆功能,在某台电脑上记忆一定的信息。Cookies的工作原理是,第一次由服务器端写入到客户端的系统中。以后每次访问这个网页,都是先由客户端将Cookies发送到服务器端,再由服务器端
很简单,在需要调用的地方用这种模式 {aspcms:content sort={aspcms:sortid} num=17 order=isrecommend}
网站系统使用ACCESS数据库时,查询时怎么比较日期和时间呢?为什么常常比较出来却是错误的呢?比如早的日期比迟的日期大?
str1=\"1235,12,23,34,123,21,56,74,1232\" str2=\"12\" 问题:如何判断str2是否存在str1中,要求准确找出12,不能找出str1中的1235、123、1232
实例为最新版本的kindeditor 4.1.5. 主要程序: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)
用ASP实现搜索引擎的功能是一件很方便的事,可是,如何实现类似3721的智能搜索呢?比如,当在搜索条件框内输入“中国人民”时,自动从中提取“中国”、“人民”等关键字并在数据库内进行搜索。看完本文后,你就可以发
首先感谢ASPCMS官网注册用户xing0203的辛苦付出!一下为久忆YK网络转载原创作者xing0203的文章内容!为了让小白更加清楚的体验替换过程,久忆YK对原文稍作了修改!
数据库连接: <% set conn=server.createobject(\"adodb.connection\") conn.open \"driver={microsoft access driver (*.mdb)};dbq=\"&server.mappath(\"数据库名\")
第1步:修改plugins下的image/image.js 找到\'<input type=\"button\" class=\"ke-upload-button\" value=\"\' + lang.upload + \'\" />\',
asp函数: <% Const sFileExt=\"jpg|gif|bmp|png\" Function ReplaceRemoteUrl(sHTML,sSaveFilePath,sFileExt)