在VB.net XML解析中跨越Node

时间:2014-04-23 11:32:15

标签: xml vb.net

我试图使用VB.net的XML解析功能

以下是Google的流量指示API返回的一些XML。

enter image description here

获取总距离值的VB.net代码是

returnedDistanceMeters = returnedXML...<route>...<leg>...<distance>...<value>.Value

但它是&#34;短切&#34;到第一步&#34;步骤&#34;节点,并给我88我想要的地方193108.如何避免它跳到第一个叫做#34;距离&#34; ?

1 个答案:

答案 0 :(得分:0)

我不知道是否有更好的方法。但每次我必须在.net上使用xml时,我更喜欢使用xsd.exe来创建一个类。

http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=vs.110).aspx

将.vb文件添加到项目后,可以使用此函数从xml文件初始化类:

Private Function getTraficFromFile(ByVal path As String) As trafic
    Dim stream As New IO.StreamReader(path)
    Dim ser As New Xml.Serialization.XmlSerializer(GetType(trafic))
    Dim mytrafic As New trafic
    mytrafic = CType(ser.Deserialize(stream), trafic)
    stream.Close()

    Return mytrafic
End Function

您可以像普通属性一样访问xml值,例如:

Dim mytraffic as trafic = getTraficFromFile(path)
MsgBox(mytraffic.route.leg.step(19).distance)