Web服务响应的xslt表中的错误

时间:2013-03-03 15:43:24

标签: xml web-services xslt

伙计我需要为来自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>

1 个答案:

答案 0 :(得分:0)

将命名空间添加到xslt,

<xsl:stylesheet xmlns:ns1="http://www.opentravel.org/OTA/2003/05">

添加后,您可以在XSLT中使用命名空间,如

<xsl:template match="ns1:OTA_AirLowFareSearchRS">