当前位置:  开发笔记 > 编程语言 > 正文

在vb6中读取xml文件

如何解决《在vb6中读取xml文件》经验,为你挑选了1个好方法。

我知道在vb.net中读取xml文件比较容易,但由于我们的appl仍然在vb6上,我需要一个解决方法.但不知何故,我被卡住了.我也无法控制xml文件,因为它是从另一个应用程序生成的.xml文件中的简短代码如下,

    
           
                   
                   
                   
                   
           
    

如果XML文件是这样的格式,我本可以轻松阅读.

    
           
                   CASHMAN
                   Cash Management
           
           
                   IM
                   Inventory Management
           
           
                   POS
                   Point of Sale
           
           
                   PRODUCT
                   Product
           
    

但是由于生成的xml文件不在我的控制范围内,因此我现在已经过了几个小时了.

我需要从这个xml文件中读取NAME-VALUE对.我该怎么做呢?

请帮忙.



1> Garett..:

您可以使用MSXML来完成它,它提供与某些.NET XML API类似的功能.我现在没有VB6的副本,但它很容易.首先,从VB6项目中添加对MSXML的引用.然后,您将执行以下操作:

创建MSXML2.DOMDocument的实例

调用Load方法来解析XML文件

打电话给selectNodes("/Report/Categories/Category").这将返回IXMLDOMNodeList对象.

然后,您可以遍历节点列表检索每个IXMLDOMNode通过项目或nextNode.

然后,您可以获取namevalue使用attributesXMLDOMNode 的属性或使用selectSingleNode("@name").TextselectSingleNode("@value").Text

MSXML非常灵活,因此您可以使用更短的语法,但上面的内容应该适合您.如果您还没有弄清楚,我会在安装VB6的机器上发布代码.

UDPATE:

以下是使用您提供的XML示例的工作示例.

Sub ParseXmlDocument()
   Dim doc As New MSXML2.DOMDocument
   Dim success As Boolean

   success = doc.Load(App.Path & "\test.xml")
   If success = False Then
      MsgBox doc.parseError.reason
   Else
      Dim nodeList As MSXML2.IXMLDOMNodeList

      Set nodeList = doc.selectNodes("/Report/Categories/Category")

      If Not nodeList Is Nothing Then
         Dim node As MSXML2.IXMLDOMNode
         Dim name As String
         Dim value As String

         For Each node In nodeList
            ' Could also do node.attributes.getNamedItem("name").text
            name = node.selectSingleNode("@name").Text
            value = node.selectSingleNode("@value").Text
         Next node
      End If
   End If
End Sub

推荐阅读
kikokikolove
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有