How are you doing? I have to make a script to parse an xml input file to a json file. I tried to do my best, but it will be nice if you could check it and help me to improve it. The idea is that I don't have use objectify of libraries that converts files directly. I have to write this scritps with at least this properties: -
Seat/Element type (Seat, Kitchen, Bathroom, etc) -
List item
Seat id (17A, 18A)
Seat price
Cabin class
Availability
By the way I couldn't find the seat/element type for each seat.
import json import xml.dom.minidom from collections import OrderedDict xmlFile = xml.dom.minidom.parse("seatmap1.xml") def set_amount(element_to_analyze, element_to_change): if element_to_analyze.getAttribute('AvailableInd') == 'true': element_to_change['seat_price'] = seat.getElementsByTagName('ns:Service')[0].getElementsByTagName( 'ns:Fee')[0].getAttribute('Amount') def str_to_bool(s): if s == 'true': return True else: return False flight_data = OrderedDict() if xmlFile.getElementsByTagName('Document').length == 0: plane_data = xmlFile.getElementsByTagName('ns:FlightSegmentInfo')[0] flight_data['FlightNumber'] = plane_data.getAttribute('FlightNumber') flight_data['DepartureDateTime'] = plane_data.getAttribute('DepartureDateTime') flight_data['DepartureAirport'] = plane_data.getElementsByTagName('ns:DepartureAirport')[0].getAttribute( 'LocationCode') flight_data['ArrivalAirport'] = plane_data.getElementsByTagName('ns:ArrivalAirport')[0].getAttribute('LocationCode') plane = xmlFile.getElementsByTagName('ns:CabinClass') cabin_object = OrderedDict() # NS CABIN CLASS for cabin_class in plane: cabin = cabin_class.getElementsByTagName('ns:RowInfo') cabin_type = cabin[0].getAttribute('CabinType') for row_group in cabin: row_object = OrderedDict() # NS ROW INFO seat_group = row_group.getElementsByTagName('ns:SeatInfo') for seat in seat_group: seat_details = OrderedDict() details = seat.getElementsByTagName('ns:Summary')[0] seat_details['seat'] = seat.getElementsByTagName('ns:') seat_details['seat_id'] = details.getAttribute('SeatNumber') seat_details['cabin_class'] = cabin_type seat_details['availability'] = str_to_bool(details.getAttribute('AvailableInd')) set_amount(details, seat_details) row_object[details.getAttribute('SeatNumber')[-1]] = seat_details cabin_object[row_group.getAttribute('RowNumber')] = row_object flight_data['Rows'] = cabin_object with open('_parsed.json', 'w') as outfile: outfile.write(json.dumps(flight_data))
This is my xml file
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Body> <ns:OTA_AirSeatMapRS Version="1" xmlns:ns="http://www.opentravel.org/OTA/2003/05/common/"> <ns:Success/> <ns:SeatMapResponses> <ns:SeatMapResponse> <ns:FlightSegmentInfo DepartureDateTime="2020-11-22T15:30:00" FlightNumber="1179"> <ns:DepartureAirport LocationCode="LAS"/> <ns:ArrivalAirport LocationCode="IAH"/> <ns:Equipment AirEquipType="739"/> </ns:FlightSegmentInfo> <ns:SeatMapDetails> <ns:CabinClass Layout="AB EF" UpperDeckInd="false"> <ns:RowInfo CabinType="First" OperableInd="true" RowNumber="1"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="1A"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="1B"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="4" ExitRowInd="false" GalleyInd="false" GridNumber="4" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="1E"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="1F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="First" OperableInd="true" RowNumber="2"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="2A"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="2B"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="4" ExitRowInd="false" GalleyInd="false" GridNumber="4" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="2E"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="2F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> </ns:CabinClass> <ns:CabinClass Layout="ABC DEF" UpperDeckInd="false"> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="7"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="7A"/> <ns:Features extension="Lavatory">Other_</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="7B"/> <ns:Features extension="Lavatory">Other_</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="7C"/> <ns:Features extension="Lavatory">Other_</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="true" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="7D"/> <ns:Features>BlockedSeat_Permanent</ns:Features> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="true" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="7E"/> <ns:Features>BlockedSeat_Permanent</ns:Features> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="true" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="7F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="8"> <ns:SeatInfo BlockedInd="false" BulkheadInd="true" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="8A"/> <ns:Status>Held</ns:Status> <ns:Features extension="Limited Recline">Other_</ns:Features> <ns:Features>Window</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="true" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="8B"/> <ns:Status>Held</ns:Status> <ns:Features extension="Limited Recline">Other_</ns:Features> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="true" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="8C"/> <ns:Status>Held</ns:Status> <ns:Features extension="Limited Recline">Other_</ns:Features> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="8D"/> <ns:Status>Held</ns:Status> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="8E"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="8F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="9"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="9A"/> <ns:Status>Held</ns:Status> <ns:Features>Window</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="9B"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="9C"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="9D"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="9E"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="9F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="10"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="10A"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="10B"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="10C"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="10D"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="10E"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="10F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="11"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="11A"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="11B"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="11C"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="11D"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="11E"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="11F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="12"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="12A"/> <ns:Status>Held</ns:Status> <ns:Features extension="Preferred">Other_</ns:Features> <ns:Features>Window</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="12B"/> <ns:Status>Held</ns:Status> <ns:Features extension="Preferred">Other_</ns:Features> <ns:Features>Center</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3" PlaneSection="Left"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="12C"/> <ns:Features extension="Preferred">Other_</ns:Features> <ns:Features>Aisle</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Preferred"> <ns:Fee Amount="4200" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="12D"/> <ns:Features extension="Preferred">Other_</ns:Features> <ns:Features>Aisle</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Preferred"> <ns:Fee Amount="4200" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="12E"/> <ns:Status>Held</ns:Status> <ns:Features extension="Preferred">Other_</ns:Features> <ns:Features>Center</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="12F"/> <ns:Status>Held</ns:Status> <ns:Features extension="Preferred">Other_</ns:Features> <ns:Features>Window</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="38"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="38A"/> <ns:Features>Window</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Economy"> <ns:Fee Amount="1300" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Center"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="38B"/> <ns:Features>Center</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Economy"> <ns:Fee Amount="1200" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3" PlaneSection="Left"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="38C"/> <ns:Features>Aisle</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Economy"> <ns:Fee Amount="1800" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="38D"/> <ns:Features>Aisle</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Economy"> <ns:Fee Amount="1800" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="38E"/> <ns:Features>Center</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Economy"> <ns:Fee Amount="1200" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="38F"/> <ns:Features>Window</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Economy"> <ns:Fee Amount="1300" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> </ns:RowInfo> <ns:RowInfo CabinType="Economy" OperableInd="true" RowNumber="39"> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="1" ExitRowInd="false" GalleyInd="false" GridNumber="1" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="true" SeatNumber="39A"/> <ns:Status>Held</ns:Status> <ns:Features>Window</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="2" ExitRowInd="false" GalleyInd="false" GridNumber="2" PlaneSection="Center"> <ns:Summary AvailableInd="true" InoperativeInd="false" OccupiedInd="false" SeatNumber="39B"/> <ns:Features>Center</ns:Features> <ns:Features extension="Chargeable">Other_</ns:Features> <ns:Service CodeContext="Economy"> <ns:Fee Amount="1200" CurrencyCode="USD" DecimalPlaces="2"> <ns:Taxes Amount="0" CurrencyCode="USD"/> </ns:Fee> </ns:Service> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="3" ExitRowInd="false" GalleyInd="false" GridNumber="3" PlaneSection="Left"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="39C"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="5" ExitRowInd="false" GalleyInd="false" GridNumber="5" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="39D"/> <ns:Features>Aisle</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="6" ExitRowInd="false" GalleyInd="false" GridNumber="6" PlaneSection="Center"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="39E"/> <ns:Features>Center</ns:Features> </ns:SeatInfo> <ns:SeatInfo BlockedInd="false" BulkheadInd="false" ColumnNumber="7" ExitRowInd="false" GalleyInd="false" GridNumber="7" PlaneSection="Right"> <ns:Summary AvailableInd="false" InoperativeInd="false" OccupiedInd="false" SeatNumber="39F"/> <ns:Features>Window</ns:Features> </ns:SeatInfo> </ns:RowInfo> </ns:CabinClass> </ns:SeatMapDetails> </ns:SeatMapResponse> </ns:SeatMapResponses> <ns:Warnings> <ns:Warning Type="11" Code="59">ENSURE PASSENGER MEETS GOVERNMENT DESIGNATED EXIT ROW CRITERIA</ns:Warning> <ns:Warning Type="11" Code="450">Valid Credit Card Payment Types: ,VI,UP,MPVI,MC,AX,DS,DC,TP,JC</ns:Warning> </ns:Warnings> </ns:OTA_AirSeatMapRS> </soapenv:Body> </soapenv:Envelope>