gpt4 book ai didi

xml - 在vb6中读取xml文件

转载 作者:数据小太阳 更新时间:2023-10-29 01:39:14 25 4
gpt4 key购买 nike

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

    <Report>
<Categories>
<Category name="CASHMAN" value="Cash Management" />
<Category name="IM" value="Inventory Management" />
<Category name="POS" value="Point of Sale" />
<Category name="PRODUCT" value="Product" />
</Categories>
</Report>

如果 XML 文件是这样的格式,我就能轻松阅读。

    <Report>
<Categories>
<name>CASHMAN</name>
<value>Cash Management</value>
</Categories>
<Categories>
<name>IM</name>
<value>Inventory Management</value>
</Categories>
<Categories>
<name>POS</name>
<value>Point of Sale</value>
</Categories>
<Categories>
<name>PRODUCT</name>
<value>Product</value>
<Categories>
<Report>

但是由于生成的 xml 文件不在我的控制范围内,我已经坚持了几个小时了。

我需要从这个 xml 文件中读取名称-值对。我该怎么做?

请帮忙。

最佳答案

您可以使用 MSXML 来完成,它提供与某些 .NET XML API 类似的功能。我现在没有 VB6 的副本,但这很容易。首先,添加对 MSXML 的引用来自您的 VB6 项目。然后你会做类似下面的事情:

  • 创建 MSXML2.DOMDocument 的实例
  • 调用Load解析XML文件的方法
  • 调用 selectNodes("/Report/Categories/Category")。这将返回 IXMLDOMNodeList对象。
  • 然后您可以遍历节点列表以检索每个 IXMLDOMNode通过itemnextNode .
  • 然后您可以使用attributes 获取名称 XMLDOMNode 的属性或使用 selectSingleNode("@name").TextselectSingleNode("@value").Text

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

更新:

这是一个使用您提供的 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

关于xml - 在vb6中读取xml文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3870485/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com