一个解析XML的VB类
首先,安装控件msxml4.msi,并在VB中引用Microsoft XML。
类ClsXml.cls的程序如下:
Option Explicit
Private document As DOMDocument
Private action As IXMLDOMElement
Public Property Let xml(ByVal xml As String)
Set document = New DOMDocument
document.loadXML xml
'document.Load App.Path + "\from.xml"
Set action = document.selectSingleNode("action")
End Property
Function getNodeAttribute(ByVal attribute_name As String)
Dim element As IXMLDOMElement
Set element = action
If element Is Nothing Then
getNodeAttribute = ""
Else
getNodeAttribute = element.getAttribute(attribute_name)
End If
End Function
Function getNodeValue(ByVal node_name As String)
Dim node As IXMLDOMNode
Set node = action.selectSingleNode(node_name)
If node Is Nothing Then
getNodeValue = ""
Else
getNodeValue = node.Text
End If
End Function
Public Sub createDocument(ByVal name As String)
Set document = New DOMDocument
Set action = document.createElement("action")
action.setAttribute "name", name
document.appendChild action
End Sub
Public Sub appendNode(ByVal node_name As String, ByVal node_value As String)
Dim node As IXMLDOMNode
Set node = action.ownerDocument.createElement(node_name)
node.Text = node_value
action.appendChild node
End Sub
Public Property Get xml() As String
xml = document.xml
'document.save App.Path + "\to.xml"
End Property
调用程序如下:
Option Explicit
Private Sub Form_Load()
Dim obj As New ClsXml
obj.xml = "<action name=""login""><username>a</username><password>1</password></action>"
MsgBox obj.getNodeAttribute("name")
MsgBox obj.getNodeValue("username")
MsgBox obj.getNodeValue("password")
obj.createDocument "logout"
obj.appendNode "username", "a"
obj.appendNode "password", "1"
MsgBox obj.xml
Unload Me
End Sub
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有