Использование Xpath в Excel для чтения атрибута дочернего узла - PullRequest
0 голосов
/ 02 апреля 2019

У меня проблемы с получением значения «Импорт данных» из дочернего узла source_lvl2.В Excel я получаю ошибку времени выполнения 91, «Переменная объекта или С переменной блока не установлено»

Я не вижу, что я делаю неправильно - любой совет?

VBA

Sub TestXML()
Dim XDoc As Object

Set XDoc = CreateObject("MSXML2.DOMDocument")
XDoc.async = False: XDoc.validateOnParse = False
XDoc.Load ("C:\171215-000438_1513346972.xml")

Set lists = XDoc.SelectNodes("/archive/primary_rnw_contact/source/source_lvl2")
Debug.Print lists(0).Attributes(0).Text
Set XDoc = Nothing
End Sub

XML

enter image description here

ДОПОЛНИТЕЛЬНЫЙ КОД

<?xml version="1.1" encoding="UTF-8"?>
<archive product="RightNow" version="4.0" build="17.8.0.1.0.248" label="Archived Incident">

1 Ответ

0 голосов
/ 02 апреля 2019

Вы можете попробовать следующее (не проверено):

Dim xmap As XmlMap
Dim k as Long
Dim oMyNewColumn As ListColumn
oMyList As ListObject

' Delete all previous XML maps
k = ThisWorkbook.XmlMaps.Count 'Detect all XML maps

For i = 1 To k
        ThisWorkbook.XmlMaps(i).Delete
Next i

...


Set xmap = ThisWorkbook.XmlMaps.Add("some_file.xml")

...

Set oMyNewColumn = oMyList.ListColumns.Add
    oMyList.ListColumns(3).XPath.SetValue xmap, "/archive/primary_rnw_contact/source/source_lvl2"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...