一个asp版XMLDOM操作类
时间:2019-09-19 11:51 来源/作者:asp代码网
-
<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
-
'
-
Dim objPi
-
Set objPi = objXML.createProcessingInstruction("xml", "version="&chr(34)&"1.0"&chr(34)&" encoding="&chr(34)&"gb2312"&chr(34))
-
'
-
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>
相关文章
热门资讯