pythonsoap-xml解析元素树或oth

2024-10-04 03:19:58 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我在resp\u avail中的输入xml

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/">
<soap-env:Header>
<eb:MessageHeader xmlns:eb="http://www.ebxml.org/namespaces/messageHeader" eb:version="1.0" soap-env:mustUnderstand="1">
<eb:From>
<eb:PartyId eb:type="URI">webservices.sabre.com</eb:PartyId>
</eb:From>
<eb:To>
<eb:PartyId eb:type="URI">api.wolfkrow.com</eb:PartyId>
</eb:To>
<eb:CPAId>Y4</eb:CPAId>
<eb:ConversationId>ABC123@api.wolfkrow.com</eb:ConversationId>
<eb:Service eb:type="sabreXML">OTA_AirAvailLLSRQ</eb:Service>
<eb:Action>OTA_AirAvailLLSRS</eb:Action>
<eb:MessageData>
<eb:MessageId>4cc0b792-531e-464a-b843-f9e3a9c842e7@152</eb:MessageId>
<eb:Timestamp>2012-03-16T06:18:58</eb:Timestamp>
<eb:RefToMessageId>mid:20001209-133003-2333@clientURL</eb:RefToMessageId>
</eb:MessageData>
</eb:MessageHeader>
<wsse:Security xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/12/secext">
<wsse:BinarySecurityToken valueType="String" EncodingType="wsse:Base64Binary">
Shared/IDL:IceSess\/SessMgr:1\.0.IDL/Common/!ICESMS\/ACPCRTC!ICESMSLB\/CRT.LB!-3943350686477026302!1270570!0
</wsse:BinarySecurityToken>
</wsse:Security>
</soap-env:Header>
<soap-env:Body>
<OTA_AirAvailRS xmlns="http://webservices.sabre.com/sabreXML/2003/07" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" TimeStamp="2012-03-16T06:18:58" AltLangID="en-us" Version="1.11.1" PrimaryLangID="en-us" EchoToken="String" SequenceNmbr="1" Target="Production">
<Success/>
<Warnings>
<Warning ShortText="NO MORE - 1* FOR CONX"/>
</Warnings>
<OriginDestinationOptions>
<OriginDestinationOption>
<TPA_Extensions>
<OriginCityTimeZoneCode Code="CST"/>
<DestinationCityTimeZoneCode Code="PDT"/>
<TimeZoneDifference Code="-1"/>
<Text>NO MORE - 1* FOR CONX</Text>
<DayOfWeek>FRI</DayOfWeek>
</TPA_Extensions>
<FlightSegment Ticket="E" StopQuantity="0" FlightNumber="966" DepartureDateTime="2012-03-16T09:45:00" ArrivalDateTime="2012-03-16T12:50:00" RPH="1" SmokingAllowed="false">
<DepartureAirport LocationCode="MEX"/>
<ArrivalAirport LocationCode="LAS"/>
<OperatingAirline Code="Y4"/>
<Equipment AirEquipType="319"/>
<MarketingAirline Code="Y4"/>
<BookingClassAvail ResBookDesigCode="Y" Availability="7" RPH="1"/>
<BookingClassAvail ResBookDesigCode="M" Availability="0" RPH="2"/>
<BookingClassAvail ResBookDesigCode="Q" Availability="0" RPH="3"/>
<BookingClassAvail ResBookDesigCode="K" Availability="0" RPH="4"/>
<BookingClassAvail ResBookDesigCode="H" Availability="0" RPH="5"/>
<BookingClassAvail ResBookDesigCode="V" Availability="0" RPH="6"/>
<BookingClassAvail ResBookDesigCode="G" Availability="0" RPH="7"/>
<BookingClassAvail ResBookDesigCode="B" Availability="0" RPH="8"/>
<BookingClassAvail ResBookDesigCode="W" Availability="0" RPH="9"/>
<BookingClassAvail ResBookDesigCode="Z" Availability="0" RPH="10"/>
<BookingClassAvail ResBookDesigCode="F" Availability="0" RPH="11"/>
<BookingClassAvail ResBookDesigCode="N" Availability="0" RPH="12"/>
<TPA_Extensions>
<Text>USD 2.40 SA-SEAT ASSIGNMENT</Text>
<Text>USD 7.92 SA-PREMIUM SEATING</Text>
<Text>MXN 150 BG-UPTO 31LB/14KG AND 62LI</Text>
<Text>MXN 200 BG-UPTO 44LB 20KG AND 62LI</Text>
<Text>MXN 100 BG-EXCESS WEIGHT AND PIECE</Text>
<DaysOfOperation>
<OperationSchedule>
<OperationTimes>
<OperationTime Mon="true" Sun="true" Tue="true" Sat="true" Thur="true" Fri="true" Weds="true"/>
</OperationTimes>
</OperationSchedule>
</DaysOfOperation>
</TPA_Extensions>
</FlightSegment>
</OriginDestinationOption>
</OriginDestinationOptions>
<TPA_Extensions>
<HostCommand>†††A††RS01S093^AD01†116MARMEXLAS0100A</HostCommand>
</TPA_Extensions>
</OTA_AirAvailRS>
</soap-env:Body>
</soap-env:Envelope>

我的python代码

^{pr2}$

因为我有字符串xml,所以如果我试图使用getroot()函数作为Parsing XML in Python using ElementTree example作为答案,我就不能使用它,它说getroot没有为以下代码定义:

node_avail = fromstring(resp_avail)
   node_avail = node_avail.getroot()

我想在这里得到<DepartureAirport LocationCode="MEX"/>位置代码。在

我怎样才能得到它?我正在做一个项目。在


Tags: textenvtruehttpextensionssoapavailabilityeb