我有一个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功能来测试标签是否自动闭合?
答案 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