تحليل بيانات Google Earth XML باستخدام VB.NET
-
18-09-2019 - |
سؤال
إليك نسخة مبسطة من XML عاد.
<?xml version="1.0" encoding="UTF-8" ?>
<kml xmlns="http://earth.google.com/kml/2.0">
<Response>
<name>1321 herbert street, Warren, MI</name>
<Status>
<code>200</code>
<request>geocode</request>
</Status>
<Placemark id="p1">
<address>Herbert St, Madison Heights, MI 48071, USA</address>
</Placemark>
<Placemark id="p2">
<address>Add2</address>
</Placemark>
</Response>
</kml>
في السابق بعد، حصلت على مساعدة حول كيفية تحليل هذه البيانات في كائنات. حاليا. أحتاج إلى مساعدة مزيد من التعليمات في محاولة القراءة في تكرير العقد تحديد موضع العلاج.
هذا هو بنية الكائن أحاول أن أقرأها:
Namespace GoogleAddress
Public Class kml
Private _Response As Response
Public Property Response() As Response
Get
Return _Response
End Get
Set(ByVal value As Response)
_Response = value
End Set
End Property
End Class
Public Class Response
Private _name As String
Public Property name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Private _Status As Status
Public Property Status() As Status
Get
Return _Status
End Get
Set(ByVal value As Status)
_Status = value
End Set
End Property
Private _Placemark() As Placemark
'
Public Property Placemark() As Placemark()
Get
Return _Placemark
End Get
Set(ByVal value As Placemark())
_Placemark = value
End Set
End Property
End Class
Public Class Status
Private _Code As Integer
Public Property Code() As Integer
Get
Return _Code
End Get
Set(ByVal value As Integer)
_Code = value
End Set
End Property
Private _Request As String
Public Property Request() As String
Get
Return _Request
End Get
Set(ByVal value As String)
_Request = value
End Set
End Property
End Class
Public Class Placemark
Private _Address As String
Public Property Address() As String
Get
Return _Address
End Get
Set(ByVal value As String)
_Address = value
End Set
End Property
End Class
End Namespace
يمكنني استخدام الروتين التالي لتحمل XML الموضح أعلاه وملء الكائن أعلاه:
Public Shared Function DeSerializeFromXMLString(ByVal TypeToDeserialize As System.Type, _
ByVal xmlString As String) As Object
Dim bytes() As Byte = System.Text.Encoding.UTF8.GetBytes(xmlString)
Dim mem As MemoryStream = New MemoryStream(bytes)
Dim ser As System.Xml.Serialization.XmlSerializer = New System.Xml.Serialization.XmlSerializer(GetType(GoogleAddress.kml), "http://earth.google.com/kml/2.0")
Dim KmlResult As GoogleAddress.kml = TryCast(ser.Deserialize(mem), GoogleAddress.kml) '
Return KmlResult
End Function
... لكن theobjects لا يتم تعبئتها بشكل صحيح ولا أحصل على أي كائنات موضعية (صفيف لين).
أي suggstions؟
المحلول
تحتاج إلى تحديد بعض صفات.
Namespace GoogleAddress
Public Class kml
Private _Response As Response
Public Property Response() As Response
Get
Return _Response
End Get
Set(ByVal value As Response)
_Response = value
End Set
End Property
End Class
Public Class Response
Private _name As String
Public Property name() As String
Get
Return _name
End Get
Set(ByVal value As String)
_name = value
End Set
End Property
Private _Status As Status
Public Property Status() As Status
Get
Return _Status
End Get
Set(ByVal value As Status)
_Status = value
End Set
End Property
<Xml.Serialization.XmlElement("Placemark")> Public Placemark As Placemark()
End Class
Public Class Status
Private _Code As Integer
Public Property Code() As Integer
Get
Return _Code
End Get
Set(ByVal value As Integer)
_Code = value
End Set
End Property
Private _Request As String
Public Property Request() As String
Get
Return _Request
End Get
Set(ByVal value As String)
_Request = value
End Set
End Property
End Class
Public Class Placemark
Private _Address As String
Private _ID As String
<Xml.Serialization.XmlAttribute("ID")> Public Property ID() As String
Get
Return _ID
End Get
Set(ByVal value As String)
_ID = value
End Set
End Property
Public Property Address() As String
Get
Return _Address
End Get
Set(ByVal value As String)
_Address = value
End Set
End Property
End Class
End Namespace
لا تنتمي إلى StackOverflow