在vb6中阅读xml文件
我知道在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文件中读取NAME-VALUE对。我该怎么办? 请帮忙。
您可以使用
MSXML,它提供与某些.NET XML API类似的功能。我现在没有VB6的副本,但这很简单。首先,从VB6项目中添加一个参考
MSXML。然后,您将执行以下操作:
>创建一个MSXML2.DOMDocument的实例 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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |