Доброго времени суток. Необходимо в VBA получить данные полученные GET запросом в виде XML страницы, и присвоить переменным их значения. почитав форум сделал "нечно"
Код
Sub test()
ID = 258
Set HTTP = CreateObject("MSXML2.XMLHTTP")
APIkey = "254BAC06-***часть_ключа_скрыта***-572F8605A51C"
sURL1 = "http://***часть_ссылки_скрыта***api/request/" & ID & "?OPERATION_NAME=GET_REQUEST&TECHNICIAN_KEY=" & APIkey
HTTP.Open "GET", sURL1, True
HTTP.Send
otvet = HTTP.responseText
'MsgBox (otvet)
Do While HTTP.readyState <> 4
DoEvents
Loop
Set xmlDoc = HTTP.responseXML
ID = xmlDoc.SelectSingleNode("//Details/parameter/value").Text
Requester = xmlDoc.SelectSingleNode("//Details/parameter/value").Text
MsgBox ("ИД:" & ID & " Заявитель " & Requester)
End Sub
Макрос отрабатывает верно, за исключением присвоения переменным нужных значений (не знаю как правильно задать) Фрагмент отдаваемого XML:
Медленно пытаюсь разобраться с этим пока что успехов не достиг значимых успехов не достиг ID = xmlDoc.SelectSingleNode("//Details/parameter[name='workorderid']").Text Requester = xmlDoc.SelectSingleNode("//Details/parameter[name='requester']").Text Результат : ID = workorderid 258 Requester = requester Name
Осталось как то избавится от того что ДО пробела (включая пробел)
Set X = xmlDoc.SelectSingleNode("//Details/parameter[name='workorderid']")
If Not X Is Nothing Then
Id = X.LastChild.Text
End If
Set X = xmlDoc.SelectSingleNode("//Details/parameter[name='requester']")
If Not X Is Nothing Then
Requester = X.LastChild.Text
End If