无法从 VBA 中的 XML 文件中获取数据? [英] Not able to get data from XML file in VBA?

查看:32
本文介绍了无法从 VBA 中的 XML 文件中获取数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从 XML 文件中获取数据,但无法获取.我不知道我在这里错过了什么.

I am trying to get data from XML file but can't get. I don't know what I am missing here.

XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<TestClass>
  <TestObject>
    <Site>Facebook</Site>
    <Name>ABC</Name>
    <URL>https://www.facebook.com/ABC/</URL>
  </TestObject>
  <TestObject>
    <Site>Facebook</Site>
    <Name>XYZ</Name>
    <URL>https://www.facebook.com/XYZ/</URL>
  </TestObject>
  <TestObject>
    <Site>Twitter</Site>
    <Name>ABC</Name>
    <URL>https://www.twitter.com/ABC/</URL>
  </TestObject>
  <TestObject>
    <Site>Facebook</Site>
    <Name>XYZ</Name>
    <URL>https://www.twitter.com/XYZ/</URL>
  </TestObject>
</TestClass>

代码:

Dim oXMLFile As Object
 Dim XMLFileName As String
 Dim Sites As Object
 Dim Names As Object
 Dim URLs As Object

 Set oXMLFile = CreateObject("Microsoft.XMLDOM")
 XMLFileName = "C:\Users\abc\Desktop\Files\Test.xml"
 oXMLFile.Load (XMLFileName)
 If oXMLFile.Load(XMLFileName) Then
   ' The document successfully to load.
Else
   ' The document failed to load.
End If

Sites = oXMLFile.SelectNodes("TestClass/TestObject/Site/text()")
Names = oXMLFile.SelectNodes("TestClass/TestObject/Name/text()")
URLs = oXMLFile.SelectNodes("TestClass/TestObject/URL/text()")

在上述情况下,SitesNamesURLs 一无所获.如果我在这里遗漏了什么,有人可以建议我吗?

In above case Sites, Names and URLs gets nothing. Can anybody suggest me if I am missing anything here?

推荐答案

由于 SitesNamesURLsObject,需要使用Set关键字.

Since Sites, Namesand URLs are Object, you need to use theSet keyword.

Set Sites = oXMLFile.SelectNodes("TestClass/TestObject/Site/text()")
Set Names = oXMLFile.SelectNodes("TestClass/TestObject/Name/text()")
Set URLs = oXMLFile.SelectNodes("TestClass/TestObject/URL/text()")

我很惊讶您没有收到错误消息,但这可能是因为 Object 是特殊的.

I'm surprised you didn't get an error, but it may be because Object are specials.

由于 SelectNodes 返回一个 IXMLDOMNodeList,您可能希望将您的定义替换为:

Since SelectNodes returns a IXMLDOMNodeList, you might want to replace your definitions by:

Dim oXMLFile as DOMDocument
Dim Sites As IXMLDOMNodeList
Dim Names As IXMLDOMNodeList
Dim URLs As IXMLDOMNodeList

这篇关于无法从 VBA 中的 XML 文件中获取数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆