Foros del Web » Programación para mayores de 30 ;) » .NET »

extraer datos de nodos y subnodos de xml vb.net 2013

Estas en el tema de extraer datos de nodos y subnodos de xml vb.net 2013 en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 25/08/2014, 17:48
 
Fecha de Ingreso: agosto-2014
Mensajes: 1
Antigüedad: 9 años, 7 meses
Puntos: 0
Pregunta extraer datos de nodos y subnodos de xml vb.net 2013

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

Etiquetas: 2013, nodos, xml
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:04.