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>