Stuart McLachlan
stuart at lexacorp.com.pg
Mon Feb 15 16:03:59 CST 2010
If you are talking about using the URLDownloadToFile API function to get some XML into a file, it is a bit roundabout, but it's actually not that complicated, it's very fast and it'sby far the easiest way I've found to do it. See example below of looking up the location of an IP address using this technique -- Stuart On 15 Feb 2010 at 12:19, Doug Steele wrote: > > Application.FollowHyperlink " > http://api.toodledo.com/api.php?method=getToken;userid=td4b703588b0844" > > Then I just get an Internet Explorer window with the xml showing it it. I > found some code on the web which gets Yahoo stock prices saves them into a > text file, reads the file and parses it, but that seems a bit roundabout. > Option Compare Database Option Explicit Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" _ (ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Long, _ ByVal lpfnCB As Long) As Long Const ERROR_SUCCESS As Long = 0 Const BINDF_GETNEWESTVERSION As Long = &H10 Function GetIPLoc(IP As String) As String 'Gets CountryName for an IP address from the online 'database at http://www.ipinfodb.com Dim strSourceUrl As String Dim strLocalFile As String Dim hfile As Long Dim strText As String strLocalFile = "c:\deleteme.htm" strSourceUrl = "http://www.ipinfodb.com/ip_query.php?ip=" _ & IP & "&output=xml" 'Get URL If URLDownloadToFile(0&, _ strSourceUrl, strLocalFile, _ BINDF_GETNEWESTVERSION, _ 0&) = ERROR_SUCCESS Then hfile = FreeFile 'Read in data from temp file Open strLocalFile For Binary As #hfile strText = Space$(LOF(hfile)) Get hfile, , strText Close #hfile 'Delete temporary file Kill strLocalFile Debug.Print strText 'Pares Country name out of returned XML strText = Mid$(strText, InStr(strText, "<CountryName>") + 13) strText = Left$(strText, InStr(strText, "</CountryName>") - 1) GetIPLoc = strText End If End Function