伙计我需要为来自webservice的响应设计xsl表,但是我面临的问题是来自webservice的每个xml标签都是“ns1:element name”形式,但是在样式表中使用它时显示错误“前缀ns1未定义”
xslt语句如下:
<xsl:template match="ns1:OTA_AirLowFareSearchRS">
<xsl:for-each select ="ns1:OTA_AirLowFareSearchRS/PricedItineraries/PricedItinerary">
来自webservice的样本xml如下:
<ns1:OTA_AirLowFareSearchRS Version="2.001" xmlns="http://www.opentravel.org/OTA/2003/05" xmlns:ns1="http://www.opentravel.org/OTA/2003/05">
<ns1:Success />
<ns1:PricedItineraries>
<ns1:PricedItinerary CompositeFlightNumber="AI" CountCompositeFlightNumber="1" FareType="Non-Refundable" InboundSegmentReference="1" MatrixFare="true" Mode="" OriginDestinationRPH="BLRHYDAI517AI20130321" OutboundSegmentReference="1" Priority="1" RecommendationRPH="1" Refundable="true" ReturnOnly="false" SequenceNumber="1.0" SupplierCode="1AWS">
<ns1:AirItinerary SupplierSystem="Amadeus">
<ns1:OriginDestinationOptions>
<ns1:OriginDestinationOption Duration="01:05:00" FlightID="BLRHYDAI517AI2013-03-21" MajorityCarrier="AI" ReturnOnly="false" SupplierCode="1AWS" SupplierSystem="Amadeus" UniqueIdentifier="1.0">
<ns1:FlightSegment ArrivalDateTime="2013-03-21T09:20:00" CabinCode="Y" DeliveryMethod="Courier" DepartureDateTime="2013-03-21T08:15:00" Duration="01:05:00" FlightNumber="517" LTD="1AWS" LineNumber="Y" NumberInParty="BLRHYD" RPH="1" ResBookDesigCode="E" TicketType="Physical" ValidConnectionInd="1AWS">
<ns1:DepartureAirport AirPortName="Bengaluru" CityName="Bangalore" LocationCode="BLR" />
<ns1:ArrivalAirport AirPortName="Shamshabad Rajiv Gandhi" CityName="Hyderabad" LocationCode="HYD" />
<ns1:OperatingAirline Code="AI" />
<ns1:BookingClassAvail FareType="RP" ResBookDesigCode="E" ResBookDesigQuantity="5" Status="5" WebFareName="EAP30" />
<ns1:Equipment AirEquipType="319" />
<ns1:MarketingAirline Code="AI" MatrixCode="AI" Name="Air India" YTAirlineCode="AI" />
<ns1:ValidatingCarrier Code="AI" />
</ns1:FlightSegment>
<ns1:FormData>
<ns1:FBC Destination="HYD" FlightNumber="517" LineNumber="Y" Origin="BLR" SeatToSell="5" WebFareName="EAP30" />
<ns1:FareDifference>
<ns1:TotalFare ADT="1" BaseFare="670-ADT 670" CHD="0" Cabin="Economy" HostName="railserver" INF="0" Rbd="RP - E -" Tax="TTL-2355">3032</ns1:TotalFare>
</ns1:FareDifference>
<ns1:TicketingInfo DeliveryMethod="Courier" TicketTimeLimit="2013-03-03 18:43:00" TicketType="Physical" />
<ns1:AgentMarkup>
答案 0 :(得分:0)
将命名空间添加到xslt,
<xsl:stylesheet xmlns:ns1="http://www.opentravel.org/OTA/2003/05">
添加后,您可以在XSLT中使用命名空间,如
<xsl:template match="ns1:OTA_AirLowFareSearchRS">