一个asp版XMLDOM操作类

来源:asp之家 时间:2011-04-19 10:50:00 

 

<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> 

标签:asp,XMLDOM
0
投稿

猜你喜欢

  • 用来武装Firefox的24款Web开发插件

    2010-02-28 12:40:00
  • ASP截取中英文字符串固定长度

    2009-08-19 17:12:00
  • 链接与文本标签们

    2008-04-04 18:07:00
  • PHP设计模式之迭代器模式浅析

    2023-05-25 11:26:26
  • aspjpeg组件通用加水印函数代码

    2011-04-04 10:32:00
  • SQL Server导入导出数据方法

    2007-08-17 09:50:00
  • sqlserver中去除字符串中连续的分隔符的sql语句

    2012-06-06 20:07:39
  • 搜索结果页(SERP):个性化如何影响用户行为?

    2009-07-22 21:00:00
  • css学习笔记:为什么在IE6下图片会往下掉一行

    2009-06-19 12:50:00
  • 设计师挖掘用户需求浅谈

    2009-10-25 13:24:00
  • MySQL修改默认字符集

    2010-11-02 12:11:00
  • JavaScript基础知识篇-你真的了解JavaScript吗?

    2009-09-17 13:00:00
  • 如何判断JavaScript变量的类型

    2009-02-25 12:28:00
  • 如何读取一个.ini文件?

    2009-11-18 20:58:00
  • MySQL身份认证漏洞 升级到5.5.24可修正

    2012-07-11 15:54:09
  • asp显示数据库中表名、字段名、字段内容

    2008-06-17 18:09:00
  • Flash在web客户端的潜在问题

    2009-05-20 12:11:00
  • MySQL的一级防范检查列表

    2011-12-14 18:39:22
  • asp远程网页数据采集常用函数代码

    2008-10-31 12:44:00
  • sql之IN和BETWEEN条件运算

    2007-09-11 13:35:00
  • asp之家 网络编程 m.aspxhome.com