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 回答