obj.Attributes(0)返回" ID",obj.getAttribute(" ID")不返回

时间:2018-03-29 19:51:02

标签: excel-vba msxml2 vba excel

这是我第一次尝试在VBA中使用MSXML2.DOMDocument,而且我有一个"呵呵?"一瞬间就开始了。我的文件看起来像这样......

<Locations>
    <Location ID="23456">
        <Properties>
            <Property ID="12345">
etc.

我想制作一份包含所有位置ID的报告,所以我:

Set locs= XDoc.SelectNodes("//Location")
For Each loc In locs
     Debug.Print loc.Attributes(0).Text
Next

我得到了23456。好极了!但是,当然,这些属性可能会移动,所以让我们解决这个......

     Debug.Print loc.getAttribute("ID").Text

返回Object required。查看调试器,我可以看到loc有一个属性,而nameID。这似乎是正确的。我还可以看到loc.getAttribute(&#34; ID&#34;)返回null。这似乎不对。

那么这里发生了什么?

1 个答案:

答案 0 :(得分:0)

我根本不了解VBA,但我的猜测是.attributes []属性会返回一个属性对象(XmlAttribute?),它可以让你访问它的标识符和值,而getAttribute()函数是具有该标识符的属性的文本值的getter。