[XML / VBA] inhoud extracten van DOMDocument Header

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Maddog McHare
  • Registratie: Maart 2005
  • Laatst online: 19-01 00:38

Maddog McHare

ROCK AND STONE!

Topicstarter
Hi tweakers,

Ik probeer middels onderstaand script een token op te halen zodat ik toegang krijg tot de server voor het opvragen van records. De aanvraag van het token verloopt prima echter wil ik de token zelf die in de response tussen de tags <token> staat extraheren om daarmee als input te dienen voor volgende berichten naar de server.

Bij een succesvolle connectie krijg ik het volgende terug van de server:

<response>
<valid>yes</valid>
<token></token>
<validUntil></validUntil>
</response>

MsgBox myHTTP.responseText geeft bovengenoemde weer.

MsgBox myHTTP.getResponseHeader("content-type") geeft alle Headers weer waar bovengenoemde als "content-type" = "text/xml" wordt weergegeven.

Hoe kom ik nu tot de inhoud van de tag <token>?


[code vb]

Sub SendXML()

'HTTP variable
Dim myHTTP As MSXML2.xmlhttp

'HTTP object
Set myHTTP = CreateObject("msxml2.xmlhttp")

'create dom document variable
'stores the xml to send
Dim myDom As MSXML2.DOMDocument

'Create the DomDocument Object
Set myDom = CreateObject("MSXML2.DOMDocument")

'Load entire Document before moving on
myDom.async = False

'xml string variable
'replace with location if sending from file or URL
Dim myxml As String

myxml = " <request>" & _
" <client>Company</client>" & _
" <username>user</username>" & _
" <password>test</password>" & _
"</request>"

'loads the xml
'change to .Load for file or url
myDom.LoadXML (myxml)

'open the connection
myHTTP.Open "post", _
"https://api.company.com/authentication/token/get/", False

'send the XML
myHTTP.Send (myDom.XML)

'Display the response
MsgBox myHTTP.responseText
MsgBox myHTTP.getResponseHeader("content-type")
End Sub

[/code vb]

M@Dd09


Acties:
  • 0 Henk 'm!

  • ValHallASW
  • Registratie: Februari 2003
  • Niet online
En met https://www.google.nl/search?q=vba+parse+xml heb je niets gevonden? ;)

Maargoed, het concept is dat je je response wederom in een msxml2.DOMDocument omzet:
code:
1
2
3
4
5
6
7
8
9
'Create the DomDocument Object
Set myDom = CreateObject("MSXML2.DOMDocument")

'Load entire Document before moving on
myDom.async = False

'loads the xml
'change to .Load for file or url
myDom.LoadXML (myxml)


Vervolgens kan je die DOM met een hele reeks van DOM-functies aanspreken, bv.
code:
1
myDom.getElementsByTagName


Zie MSDN: XML DOM Methods