当前位置: 移动技术网 > IT编程>开发语言>Asp > 一个asp版XMLDOM操作类

一个asp版XMLDOM操作类

2017年12月12日  | 移动技术网IT编程  | 我要评论
<script language="vbscript" runat="server">
'============================================================
'作者:做回自己
'时间:2005-3-15
============================================================
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
'//============================================================
'<!--建立一个新的xml文档-->
public function createnew(sname)
set tmpnode = objxml.createelement(sname)
objxml.appendchild(tmpnode)
set createnew = tmpnode
end function
'<!--从外部读入xml文档-->
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
'<!--从外部读入xml字符串-->
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
'//=============================================================================
'<!--保存xml文档-->
public function savexml()
'processinginstruction()
objxml.save(xmlpath)
end function
'<!--另存xml文档-->
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
</script>

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网