Hola a todos.
estoy haciendo una aplicación en la que tiene que solicitar la disponibilidad de vuelos y ordenar en un flexgrid o un dtagridview la respuesta, esto es con archivos xml.
la estructura del xml-responce es la siguiente:
Código:
<OriginDestinationOptions>
<OriginDestinationOption>
<FlightSegment>
<ReturnCode>0</ReturnCode>
<ODNo>1</ODNo>
<SegmentNo>1</SegmentNo>
<CityPairNo>62</CityPairNo>
<DepartureCity>MEX</DepartureCity>
<ArrivalCity>CUN</ArrivalCity>
<FlightNumber>AAA3140</FlightNumber>
<BoardDate>2014-07-26</BoardDate>
<DepartureAirport>MEX</DepartureAirport>
<ArrivalAirport>CUN</ArrivalAirport>
<FlightPathCode>D</FlightPathCode>
<DepartureTime>11:10</DepartureTime>
<ArrivalTime>13:25</ArrivalTime>
<Classes>
<SellingClass>
<ClassCode>T</ClassCode>
<SeatCount>99</SeatCount>
<FareCode>TVA</FareCode>
<FareValue>100.00</FareValue>
<TaxValue>584.10</TaxValue>
<RefundableFlag>0</RefundableFlag>
<FloatingFareFlag>0</FloatingFareFlag>
<FloatingBaseClass/>
<Cabin>Z</Cabin>
</SellingClass>
<SellingClass>
<ClassCode>S</ClassCode>
<SeatCount>93</SeatCount>
<FareCode>STA</FareCode>
<FareValue>110.00</FareValue>
<TaxValue>528.92</TaxValue>
<RefundableFlag>0</RefundableFlag>
<FloatingFareFlag>0</FloatingFareFlag>
<FloatingBaseClass/>
<Cabin>Z</Cabin>
</SellingClass>
</Classes>
<CodeShare/>
</FlightSegment>
</OriginDestinationOption>
<OriginDestinationOption>
<FlightSegment>
<ReturnCode>0</ReturnCode>
<ODNo>2</ODNo>
<SegmentNo>1</SegmentNo>
<CityPairNo>62</CityPairNo>
<DepartureCity>MEX</DepartureCity>
<ArrivalCity>CUN</ArrivalCity>
<FlightNumber>AAA3142</FlightNumber>
<BoardDate>2014-07-26</BoardDate>
<DepartureAirport>MEX</DepartureAirport>
<ArrivalAirport>CUN</ArrivalAirport>
<FlightPathCode>D</FlightPathCode>
<DepartureTime>09:05</DepartureTime>
<ArrivalTime>11:20</ArrivalTime>
<Classes>
<SellingClass>
<ClassCode>X</ClassCode>
<SeatCount>19</SeatCount>
<FareCode>XAAA</FareCode>
<FareValue>200.00</FareValue>
<TaxValue>44.30</TaxValue>
<RefundableFlag>0</RefundableFlag>
<FloatingFareFlag>0</FloatingFareFlag>
<FloatingBaseClass/>
<Cabin>Z</Cabin>
</SellingClass>
<SellingClass>
<ClassCode>T</ClassCode>
<SeatCount>99</SeatCount>
<FareCode>TVA</FareCode>
<FareValue>210.00</FareValue>
<TaxValue>584.10</TaxValue>
<RefundableFlag>0</RefundableFlag>
<FloatingFareFlag>0</FloatingFareFlag>
<FloatingBaseClass/>
<Cabin>Z</Cabin>
</SellingClass>
</Classes>
<CodeShare/>
</FlightSegment>
</OriginDestinationOption>
<OriginDestinationOption>
<FlightSegment>
<ReturnCode>0</ReturnCode>
<ODNo>3</ODNo>
<SegmentNo>1</SegmentNo>
<CityPairNo>62</CityPairNo>
<DepartureCity>MEX</DepartureCity>
<ArrivalCity>CUN</ArrivalCity>
<FlightNumber>AAA3144</FlightNumber>
<BoardDate>2014-07-26</BoardDate>
<DepartureAirport>MEX</DepartureAirport>
<ArrivalAirport>CUN</ArrivalAirport>
<FlightPathCode>D</FlightPathCode>
<DepartureTime>21:50</DepartureTime>
<ArrivalTime>00:05</ArrivalTime>
<Classes>
<SellingClass>
<ClassCode>X</ClassCode>
<SeatCount>36</SeatCount>
<FareCode>XAAA</FareCode>
<FareValue>300.00</FareValue>
<TaxValue>44.30</TaxValue>
<RefundableFlag>0</RefundableFlag>
<FloatingFareFlag>0</FloatingFareFlag>
<FloatingBaseClass/>
<Cabin>Z</Cabin>
</SellingClass>
<SellingClass>
<ClassCode>W</ClassCode>
<SeatCount>0</SeatCount>
<FareCode>WWW</FareCode>
<FareValue>1000.00</FareValue>
<TaxValue>193.15</TaxValue>
<RefundableFlag>0</RefundableFlag>
<FloatingFareFlag>0</FloatingFareFlag>
<FloatingBaseClass/>
<Cabin>Z</Cabin>
</SellingClass>
</Classes>
<CodeShare/>
</FlightSegment>
</OriginDestinationOption>
</OriginDestinationOptions>
lo que quiero es que lea los nodos de <FlightSegment> y sus respectivos <SellingClass>
MEX CUN AAA3140
T TVA 100.00
S STA 110.00
MEX CUN AAA3142
X XAAA 200.00
T TVA 210.00
MEX CUN AAA3144
X XAAA 300.00
W WWW 1000.00
este es el código que estoy usando pero no me da los resultados esperados
Código:
nodelist = parser.selectNodes("soap:Envelope/soap:Body/RRT:AVAILABILITYReply/OriginDestinationOptions/OriginDestinationOption/FlightSegment")
If Not nodelist Is Nothing Then
Dim node1, node2 As MSXML2.IXMLDOMNode
Dim damo, farerid, test As String
'
For Each node1 In nodelist
damo = node1.selectSingleNode("ODNo").text
farerid = node1.selectSingleNode("DepartureCity").text
test = node1.selectSingleNode("Classes/SellingClass/ClassCode").text
'
fso.WriteLine("<FlightSegment>")
fso.WriteLine("<ODNo>" & damo & "</ODNo>")
fso.WriteLine("<DepartureCity>" & farerid & "</DepartureCity>")
fso.WriteLine("<CC>" & test & "</CC>")
fso.WriteLine("<Classes>")
'
For Each node2 In nodelist
Dim damo1, farerid1 As String
damo1 = node2.selectSingleNode("Classes/SellingClass/ClassCode").text
farerid1 = node2.selectSingleNode("Classes/SellingClass/FareValue").text
fso.WriteLine("<SellingClass>")
fso.WriteLine("<ClassCode>" & damo1 & "</ClassCode>")
fso.WriteLine("<FareValue>" & farerid1 & "</FareValue>")
fso.WriteLine("<numfl>" & damo & "</numfl>")
fso.WriteLine("</SellingClass>")
Next node2
fso.WriteLine("</Classes>")
fso.WriteLine("</FlightSegment>")
Next node1
fso.WriteLine("</FareCodes>")
End If
Resultado del codigo:
Código:
<FlightSegment>
<ODNo>1</ODNo>
<DepartureCity>MEX</DepartureCity>
<CC>T</CC>
<Classes>
<SellingClass>
<ClassCode>T</ClassCode>
<FareValue>100.00</FareValue>
<numfl>1</numfl>
</SellingClass>
<SellingClass>
<ClassCode>X</ClassCode>
<FareValue>200.00</FareValue>
<numfl>1</numfl>
</SellingClass>
<SellingClass>
<ClassCode>X</ClassCode>
<FareValue>300.00</FareValue>
<numfl>1</numfl>
</SellingClass>
</Classes>
</FlightSegment>
<FlightSegment>
<ODNo>2</ODNo>
<DepartureCity>MEX</DepartureCity>
<CC>X</CC>
<Classes>
<SellingClass>
<ClassCode>T</ClassCode>
<FareValue>100.00</FareValue>
<numfl>2</numfl>
</SellingClass>
<SellingClass>
<ClassCode>X</ClassCode>
<FareValue>200.00</FareValue>
<numfl>2</numfl>
</SellingClass>
<SellingClass>
<ClassCode>X</ClassCode>
<FareValue>300.00</FareValue>
<numfl>2</numfl>
</SellingClass>
</Classes>
</FlightSegment>
<FlightSegment>
<ODNo>3</ODNo>
<DepartureCity>MEX</DepartureCity>
<CC>X</CC>
<Classes>
<SellingClass>
<ClassCode>T</ClassCode>
<FareValue>100.00</FareValue>
<numfl>3</numfl>
</SellingClass>
<SellingClass>
<ClassCode>X</ClassCode>
<FareValue>200.00</FareValue>
<numfl>3</numfl>
</SellingClass>
<SellingClass>
<ClassCode>X</ClassCode>
<FareValue>300.00</FareValue>
<numfl>3</numfl>
</SellingClass>
</Classes>
</FlightSegment>
por su atención y ayuda muchas gracias