音效素材网提供各类素材,打造精品素材网站!

站内导航 站长工具 投稿中心 手机访问

音效素材

ASP XML操作类代码
日期:2021-09-05 22:12:22   来源:脚本之家

复制代码 代码如下:
Class XMLClass
Private objXml
Private xmlDoc
Private xmlPath
'//============================================================
'
Sub Class_initialize
Set objXml = Server.CreateObject("MSXML2.DOMDocument")
objXml.preserveWhiteSpace = true
objXml.async = false
End Sub
Sub Class_Terminate
Set objXml = Nothing
End Sub
'//============================================================
'
Public Function CreateNew(sName)
Set tmpNode = objXml.createElement(sName)
objXml.appendChild(tmpNode)
Set CreateNew = tmpNode
End Function
'
Public Function OpenXml(sPath)
OpenXml=False
sPath=Server.MapPath(sPath)
'Response.Write(sPath)
xmlPath = sPath
If objXml.load(sPath) Then
Set xmlDoc = objXml.documentElement
OpenXml=True
End If
End Function
'
Public Sub LoadXml(sStr)
objXml.loadXML(sStr)
Set xmlDoc = objXml.documentElement
End Sub
Public Sub InceptXml(xObj)
Set objXml = xObj
Set xmlDoc = xObj.documentElement
End Sub
'//============================================================
'
Public Function AddNode(sNode,rNode)
' sNode STRING 节点名称
' rNode OBJECT 增加节点的上级节点引用
'=============================================================
Dim TmpNode
Set TmpNode = objXml.createElement(sNode)
rNode.appendChild TmpNode
Set AddNode = TmpNode
End Function
'
Public Function AddAttribute(sName,sValue,oNode)
' sName STRING 属性名称
' sValue STRING 属性值
' oNode OBJECT 增加属性的对象
'=============================================================
oNode.setAttribute sName,sValue
End Function
'
Public Function AddText(FStr,cdBool,oNode)
Dim tmpText
If cdBool Then
Set tmpText = objXml.createCDataSection(FStr)
Else
Set tmpText = objXml.createTextNode(FStr)
End If
oNode.appendChild tmpText
End Function
'========================================================================================================
'
Public Function GetAtt(aName,oNode)
' aName STRING 属性名称
' oNode OBJECT 节点引用
'=============================================================
dim tmpValue
tmpValue = oNode.getAttribute(aName)
GetAtt = tmpValue
End Function
'
Public Function GetNodeName(oNode)
' oNode OBJECT 节点引用
GetNodeName = oNode.nodeName
End Function
'
Public Function GetNodeText(oNode)
' oNode OBJECT 节点引用
GetNodeText = oNode.childNodes(0).nodeValue
End Function
'
Public Function GetNodeType(oNode)
' oNode OBJECT 节点引用
GetNodeType = oNode.nodeValue
End Function
'
Public Function FindNodes(sNode)
Dim tmpNodes
Set tmpNodes = objXml.getElementsByTagName(sNode)
Set FindNodes = tmpNodes
End Function
'
Public Function FindNode(sNode)
Dim TmpNode
Set TmpNode=objXml.selectSingleNode(sNode)
Set FindNode = TmpNode
End Function
'
Public Function DelNode(sNode)
Dim TmpNodes,Nodesss
Set TmpNodes=objXml.selectSingleNode(sNode)
Set Nodesss=TmpNodes.parentNode
Nodesss.removeChild(TmpNodes)
End Function
'
Public Function ReplaceNode(sNode,sText,cdBool)
'replaceChild
Dim TmpNodes,tmpText
Set TmpNodes=objXml.selectSingleNode(sNode)
'AddText sText,cdBool,TmpNodes
If cdBool Then
Set tmpText = objXml.createCDataSection(sText)
Else
Set tmpText = objXml.createTextNode(sText)
End If
TmpNodes.replaceChild tmpText,TmpNodes.firstChild
End Function

Private Function ProcessingInstruction
'//--创建XML声明
Dim objPi
Set objPi = objXML.createProcessingInstruction("xml", "version="&chr(34)&"1.0"&chr(34)&" encoding="&chr(34)&"gb2312"&chr(34))
'//--把xml生命追加到xml文档
objXML.insertBefore objPi, objXML.childNodes(0)
End Function
'//=============================================================================
'
Public Function SaveXML()
'ProcessingInstruction()
objXml.save(xmlPath)
End Function
'
Public Function SaveAsXML(sPath)
ProcessingInstruction()
objXml.save(sPath)
End Function
'//==================================================================================
'相关统计
'
Property Get Root
Set Root = xmlDoc
End Property
'
Property Get Length
Length = xmlDoc.childNodes.length
End Property
'//==================================================================================
'相关测试
Property Get TestNode
TestNode = xmlDoc.childNodes(0).text
End Property
End Class


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,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
%>
____________________

本文未经测试,文章可行度未知。

    您感兴趣的教程

    在docker中安装mysql详解

    本篇文章主要介绍了在docker中安装mysql详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编...

    详解 安装 docker mysql

    win10中文输入法仅在桌面显示怎么办?

    win10中文输入法仅在桌面显示怎么办?

    win10系统使用搜狗,QQ输入法只有在显示桌面的时候才出来,在使用其他程序输入框里面却只能输入字母数字,win10中...

    win10 中文输入法

    一分钟掌握linux系统目录结构

    这篇文章主要介绍了linux系统目录结构,通过结构图和多张表格了解linux系统目录结构,感兴趣的小伙伴们可以参考一...

    结构 目录 系统 linux

    PHP程序员玩转Linux系列 Linux和Windows安装

    这篇文章主要为大家详细介绍了PHP程序员玩转Linux系列文章,Linux和Windows安装nginx教程,具有一定的参考价值,感兴趣...

    玩转 程序员 安装 系列 PHP

    win10怎么安装杜比音效Doby V4.1 win10安装杜

    第四代杜比®家庭影院®技术包含了一整套协同工作的技术,让PC 发出清晰的环绕声同时第四代杜比家庭影院技术...

    win10杜比音效

    纯CSS实现iOS风格打开关闭选择框功能

    这篇文章主要介绍了纯CSS实现iOS风格打开关闭选择框,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作...

    css ios c

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的办法

    Win7如何给C盘扩容 Win7系统电脑C盘扩容的

    Win7给电脑C盘扩容的办法大家知道吗?当系统分区C盘空间不足时,就需要给它扩容了,如果不管,C盘没有足够的空间...

    Win7 C盘 扩容

    百度推广竞品词的投放策略

    SEM是基于关键词搜索的营销活动。作为推广人员,我们所做的工作,就是打理成千上万的关键词,关注它们的质量度...

    百度推广 竞品词

    Visual Studio Code(vscode) git的使用教程

    这篇文章主要介绍了详解Visual Studio Code(vscode) git的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。...

    教程 Studio Visual Code git

    七牛云储存创始人分享七牛的创立故事与

    这篇文章主要介绍了七牛云储存创始人分享七牛的创立故事与对Go语言的应用,七牛选用Go语言这门新兴的编程语言进行...

    七牛 Go语言

    Win10预览版Mobile 10547即将发布 9月19日上午

    微软副总裁Gabriel Aul的Twitter透露了 Win10 Mobile预览版10536即将发布,他表示该版本已进入内部慢速版阶段,发布时间目...

    Win10 预览版

    HTML标签meta总结,HTML5 head meta 属性整理

    移动前端开发中添加一些webkit专属的HTML5头部标签,帮助浏览器更好解析HTML代码,更好地将移动web前端页面表现出来...

    移动端html5模拟长按事件的实现方法

    这篇文章主要介绍了移动端html5模拟长按事件的实现方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家...

    移动端 html5 长按

    HTML常用meta大全(推荐)

    这篇文章主要介绍了HTML常用meta大全(推荐),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参...

    cdr怎么把图片转换成位图? cdr图片转换为位图的教程

    cdr怎么把图片转换成位图? cdr图片转换为

    cdr怎么把图片转换成位图?cdr中插入的图片想要转换成位图,该怎么转换呢?下面我们就来看看cdr图片转换为位图的...

    cdr 图片 位图

    win10系统怎么录屏?win10系统自带录屏详细教程

    win10系统怎么录屏?win10系统自带录屏详细

    当我们是使用win10系统的时候,想要录制电脑上的画面,这时候有人会想到下个第三方软件,其实可以用电脑上的自带...

    win10 系统自带录屏 详细教程

    + 更多教程 +
    ASP编程JSP编程PHP编程.NET编程python编程