似乎xmlnode.Count不存在,但为什么?错误:";xmlnode.Count=';xmlnode.Count';引发了类型为';System.NullReferenceException'&引用;

似乎xmlnode.Count不存在,但为什么?错误:";xmlnode.Count=';xmlnode.Count';引发了类型为';System.NullReferenceException'&引用;,xml,vb.net,Xml,Vb.net,我正在创建一个程序,在其中输入一个IP地址,程序输出一组关于该IP的数据。我正在使用IPStack API获取此信息。我一直在用XML进行尝试,但我知道也可以用JSON数据进行 我已经看了一些使用GeoIP的教程(已经关闭)。我尝试过使用非常类似的代码,但改为使用IPstack而不是GeoIP 通过使用断点,我看到当读取行“For I=0 To xmlnode.Count-1”时,循环直接跳过,因此在本例中,我将其更改为+1。然后给我以下错误 xmlnode.Count='xmlnode.Cou

我正在创建一个程序,在其中输入一个IP地址,程序输出一组关于该IP的数据。我正在使用IPStack API获取此信息。我一直在用XML进行尝试,但我知道也可以用JSON数据进行

我已经看了一些使用GeoIP的教程(已经关闭)。我尝试过使用非常类似的代码,但改为使用IPstack而不是GeoIP

通过使用断点,我看到当读取行“For I=0 To xmlnode.Count-1”时,循环直接跳过,因此在本例中,我将其更改为+1。然后给我以下错误

xmlnode.Count='xmlnode.Count'引发了类型为的异常 “System.NullReferenceException”


请显示XML。我从上面的链接复制的XML没有“response”(而是“result”),但仍然令人惊讶的是,
Count
会出现问题,因为
XmlDocument的文档。GetElementsByTagName
指出,如果没有匹配的节点,返回的集合应该是空的。我希望一个空集合为
Count
返回0。好的,我一定是打错了。我已将“响应”替换为“结果”。但当我在断点处检查变量时,它对任何变量都没有太大影响。有什么想法吗?请展示XML。我从上面的链接复制的XML没有“响应”(而是“结果”),但仍然令人惊讶的是,
Count
会出现问题,因为
XmlDocument的文档。GetElementsByTagName
表明如果没有匹配的节点,返回的集合应该是空的。我希望一个空集合为
Count
返回0。好的,我一定是打错了。我已将“响应”替换为“结果”。但当我在断点处检查变量时,它对任何变量都没有太大影响。有什么想法吗?
Private Sub geo()

    Dim xmlnode As XmlNodeList

    Dim IP As String = txtLookup.Text

    Dim APIKey As String = "?access_key=c48babe58dc723c552800c46cbd3c9c6&format=1"
    Dim xmldoc As New XmlDocument

    Dim URL As String = "http://api.ipstack.com/" & IP & APIKey & "&output=xml"

    xmldoc.Load(URL)

    xmlnode = xmldoc.GetElementsByTagName("Response")

    For i = 0 To xmlnode.Count - 1 'This is the issue 
        xmlnode(i).ChildNodes.Item(0).InnerText.Trim()

        Label2.Text = "Country Code : " & xmlnode(i).ChildNodes.Item(1).InnerText.Trim()

        Label3.Text = "Country Name : " & xmlnode(i).ChildNodes.Item(2).InnerText.Trim()

        Label4.Text = "Region Code : " & xmlnode(i).ChildNodes.Item(3).InnerText.Trim()

        Label5.Text = "Region Name : " & xmlnode(i).ChildNodes.Item(4).InnerText.Trim()

        Label6.Text = "City : " & xmlnode(i).ChildNodes.Item(5).InnerText.Trim()

        Label7.Text = "Post Code : " & xmlnode(i).ChildNodes.Item(6).InnerText.Trim()

        Label8.Text = "Latitude : " & xmlnode(i).ChildNodes.Item(7).InnerText.Trim()

        Label9.Text = "Longitude : " & xmlnode(i).ChildNodes.Item(8).InnerText.Trim()

    Next
End Sub

Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click
    geo()
End Sub