【发布时间】:2015-06-11 16:50:14
【问题描述】:
我正在尝试编写代码来获取 IP GEO 信息。
这是我的代码:
Imports System.Xml
Public Class Form1
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
End Sub
Private Sub geo()
Dim xmldoc As New XmlDocument
Dim xmlnode As XmlNodeList
Dim i As Integer
xmldoc.Load("http://freegeoip.cnet/xml/" & TextBox1.Text)// this is where I get the Error
xmlnode = xmldoc.GetElementsByTagName("Response")
For i = 0 To xmlnode.Count - 1
Label1.Text = "IP Address : " & xmlnode(i).ChildNodes.Item(0).InnerText.Trim()
Label2.Text = "Country Code : " & xmlnode(i).ChildNodes.Item(0).InnerText.Trim()
Label3.Text = "Country Name : " & xmlnode(i).ChildNodes.Item(1).InnerText.Trim()
Label4.Text = "Region Code : " & xmlnode(i).ChildNodes.Item(2).InnerText.Trim()
Label5.Text = "Region Name : " & xmlnode(i).ChildNodes.Item(3).InnerText.Trim()
Label6.Text = "City : " & xmlnode(i).ChildNodes.Item(4).InnerText.Trim()
Label7.Text = "Zip Code : " & xmlnode(i).ChildNodes.Item(5).InnerText.Trim()
Label8.Text = "Latitude : " & xmlnode(i).ChildNodes.Item(6).InnerText.Trim()
Label9.Text = "Longitude : " & xmlnode(i).ChildNodes.Item(7).InnerText.Trim()
Label10.Text = "Metro Code : " & xmlnode(i).ChildNodes.Item(8).InnerText.Trim()
xmlnode(i).ChildNodes.Item(9).InnerText.Trim()
Next
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
geo()
End Sub
End Class
这是错误信息:
System.Xml.dll 中发生“System.Xml.XmlException”
有人知道为什么吗?
【问题讨论】:
-
请显示 full 堆栈跟踪,包括错误消息。异常对它们来说更多不仅仅是类型的名称......
-
对不起,我是这个编程的新手,如何获得完整的堆栈跟踪?
-
好吧,我们根本不知道您在哪里看到了错误 - 但我希望它在那里。 (提示:如果你把它转换成一个简短但完整的控制台应用程序,包括完整的 URL,代码会更短,我们将能够重现它,并且在运行它时你会看到完整的堆栈跟踪...)
-
在 xmldoc.Load 周围装饰一个 try..catch 并检查 textbox1 的值。