如何在Excel VBA中读取XML自动关闭标记?

时间:2019-02-15 09:24:01

标签: excel xml vba

我有一个XML文件,其中包含一个标签,该标签可以有文本,也可以在没有文本时自动关闭。

案例1(带文字):

<Example>
   <size>512</size>
</Example>

案例2(无文本-自动关闭):

<Example>
   <size />
</Example>

我想在Excel VBA中阅读此标记文本。 在情况1中,没问题,我会执行以下操作:

Set oXMLFile = CreateObject("Microsoft.XMLDOM")
oXMLFile.Load ("File.xml")
size = oXMLFile.SelectSingleNode("/Example/size/text()").NodeValue

但是在情况2中,SelectSingleNode函数返回此错误:

  

运行时错误'438':
  对象不支持此属性或方法

如何处理案例2,以便它返回一个空字符串?是否有内置的VBA功能来测试标签是否自动闭合?

1 个答案:

答案 0 :(得分:1)

Option Explicit

Sub Test()

    Dim oXMLFile As Object
    Dim oNode As Object
    Dim sSize As String

    Set oXMLFile = CreateObject("MSXML2.DOMDocument.6.0")
    oXMLFile.LoadXML "<Example><size>512</size></Example>"
    Set oNode = oXMLFile.SelectSingleNode("/Example/size/text()")
    If Not oNode Is Nothing Then sSize = oNode.NodeValue

End Sub