0

Webサービスからの応答用にxslシートを設計する必要がありますが、私が直面している問題は、Webサービスからの各xmlタグが「ns1:要素名」の形式であることですが、スタイルシートで使用すると表示されますエラー「プレフィックス 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>
4

1 に答える 1

0

名前空間を xslt に追加し、

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

追加したら、次のように XSLT で名前空間を使用できます。

<xsl:template match="ns1:OTA_AirLowFareSearchRS">
于 2013-03-03T15:51:30.553 に答える