When I place the API Url string on the browser, I get the data as expected but in the vb.net page, I get the following error: System.NullReferenceException: Object reference not set to an instance of an object
This is the extract from the page where the url is displayed. Any ideas how to fix this issue? I will also be using parmeterized query as well
Dim doc As New XmlDocument()
doc.Load("http://api.tradedoubler.com/1.0/products.xml;q=paris?token=A87185243749DAC9685310F6FEEB7F9038DD7F88")
Imports System
Imports System.IO
Imports System.Xml
Public Module Module1
Public Sub Main()
Dim doc As New XmlDocument()
doc.Load("http://api.tradedoubler.com/1.0/products.xml;q=paris?token=A87185243749DAC9685310F6FEEB7F9038DD7F88")
Dim nodes As XmlNodeList = doc.DocumentElement.SelectNodes("/")
For Each node As XmlNode In nodes
Console.WriteLine(node.Name)
Next
End Sub
End Module
test3.txt (4.1 KB)
yes i have. i m using vb.net. I have attached the file - renamed the extension from .aspx to txt.
I suspect the issue is from this line onward as the values may not be read from the file but not sure: Select Name = node.SelectSingleNode(“ns2:name”, nsManager).InnerText, _
Sorry I’m not being more helpful but I don’t typically do vb.net but I can tell you it’s probably this portion…
City = node.SelectSingleNode("ns2:fields/ns2:field[@name='city']", nsManager).InnerText, _
Country = node.SelectSingleNode("ns2:fields/ns2:field[@name='Country']", nsManager).InnerText, _
If I split the datasource line to write out the individual selects as writelines, all of them work except for the two looking for the city and country. https://dotnetfiddle.net/xP78e4
Imports System.Xml
Public Module Module1
Public Sub Main()
Dim doc As New XmlDocument()
doc.Load("http://api.tradedoubler.com/1.0/products.xml?token=A87185243749DAC9685310F6FEEB7F9038DD7F88")
Dim nsManager As New XmlNamespaceManager(doc.NameTable)
nsManager.AddNamespace("ns1", "urn:com:tradedoubler:pf:model:xml:output")
nsManager.AddNamespace("ns2", "urn:com:tradedoubler:pf:model:xml:common")
Dim nodes As XmlNodeList = doc.SelectNodes("//ns1:products/ns1:product", nsManager)
For Each node As XmlNode in nodes
Console.WriteLine(node.SelectSingleNode("ns2:name", nsManager).InnerText)
Console.WriteLine(node.SelectSingleNode("ns2:description", nsManager).InnerText)
Console.WriteLine(node.SelectSingleNode("ns2:productImage", nsManager).InnerText)
' Console.WriteLine(node.SelectSingleNode("ns2:fields/ns2:field[@name='City']", nsManager).InnerText)
' Console.WriteLine(node.SelectSingleNode("ns2:fields/ns2:field[@name='Country']", nsManager).InnerText)
Console.WriteLine(node.SelectSingleNode("ns1:offers/ns1:offer/ns1:priceHistory/ns2:price", nsManager).InnerText)
Console.WriteLine(node.SelectSingleNode("ns1:offers/ns1:offer/ns2:productUrl", nsManager).InnerText)
Console.WriteLine(node.SelectSingleNode("ns1:offers/ns1:offer/ns2:programName", nsManager).InnerText)
Console.WriteLine(node.SelectSingleNode("ns1:offers/ns1:offer/ns2:programLogo", nsManager).InnerText)
Next
Console.WriteLine("Hello World")
End Sub
End Module
Quick question on this API. is it possible to connect to a second or even third API on the same page so for instance, I may use other providers and want to know if it is possible to add just add their link to the same page:
Dim doc As New XmlDocument()
doc.Load("http://api.tradedoubler.com/1.0/products.xml;q=paris?token=A87185243749DAC9685310F6FEEB7F9038DD7F88")