首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在vb6中读取xml文件

在vb6中读取xml文件
EN

Stack Overflow用户
提问于 2010-10-06 16:01:42
回答 3查看 72.6K关注 0票数 18

我知道在vb.net中读取xml文件更容易,但是因为我们的应用程序仍然在vb6上,所以我需要一个变通的方法。但不知何故,我被卡住了。另外,我无法控制xml文件,因为它是从另一个应用程序生成的。下面是xml文件中的简短代码,

代码语言:javascript
复制
    <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文件的格式是这样的,我就可以很容易地读取它。

代码语言:javascript
复制
    <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文件中读取名称-值对。我该怎么做呢?

请帮帮忙。

EN

回答 3

Stack Overflow用户

发布于 2010-10-06 17:13:07

按照本问题(以及Ardman链接的文章)中的建议使用MSXML

您可以使用IXMLDOMElement.getAttributeNode读取属性。

例如,下面的代码从MSDN读取sample books.xml file并访问属性。您需要引用a version of Microsoft XML

代码语言:javascript
复制
Private Sub Form_Load()
Dim xmlDoc As New MSXML2.DOMDocument30
Dim nodeBook As IXMLDOMElement
Dim nodeId As IXMLDOMAttribute
Dim sIdValue As String
xmlDoc.async = False
xmlDoc.Load App.Path & "\books.xml"
If (xmlDoc.parseError.errorCode <> 0) Then
   Dim myErr
   Set myErr = xmlDoc.parseError
   MsgBox ("You have error " & myErr.reason)
Else
   Set nodeBook = xmlDoc.selectSingleNode("//book")
   Set nodeId = nodeBook.getAttributeNode("id")
   sIdValue = nodeId.xml
   MsgBox sIdValue
End If

End Sub
票数 2
EN

Stack Overflow用户

发布于 2010-10-06 16:14:02

您可以使用XSLT将XML从该结构转换为值对

http://www.xmlfiles.com/articles/sample_chapters/sams_xmlforaspnet/default.asp

票数 0
EN

Stack Overflow用户

发布于 2018-05-18 01:39:08

谢谢,这个问答对我帮助很大。我花了两天时间才弄明白,

代码语言:javascript
复制
Set xmlDoc = CreateObject("Msxml2.DOMDocument")

Dim nodeBook
Dim nodeId
xmlDoc.async = False
xmlDoc.Load ("xmlfile url")
If (xmlDoc.parseError.errorCode <> 0) Then
   Dim myErr
   Set myErr = xmlDoc.parseError
   MsgBox ("You have error " & myErr.reason)
Else
   Set nodeBook = xmlDoc.selectSingleNode("//Program")
   Set nodeId = nodeBook.getAttributeNode("description")
   wscript.Echo nodeId.value
End If
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3870485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档