2016-08-22 95 views
-1

我只是想從這個hotel_info結構轉換爲AvailableHotels結構:本hotel_info XML來自一個傳統的SOAP Web服務,我的目標是結構AvailableHotels;從hotel_info所需的元素出現在不同的地方映射非結構化架構元素爲結構化

 <hotel_info> 
     <AvailableHotels> 
        <hotel_1> 
         <hotelName_1>safd1</hotelName_1> 
         <booked_by>Taylor Volkes</booked_by> 
         <booking_id>sdf</booking_id> 
        </hotel_1> 
        <hotel_2> 
         <hotelName_1>safd2</hotelName_1> 
         <booked_by>Sam Volkes</booked_by> 
         <booking_id>sdf</booking_id> 
        </hotel_2> 
     </AvailableHotels> 
     <hotel_details> 
         <detail> 
         <hotelReference>hotel_1</hotelReference> 
         <reservation_complete>Yes</reservation_complete> 
         <hotelAddress1>sd</hotelAddress1> 
         <hotelAddress2>sd</hotelAddress2> 
         <hotelCity>sd</hotelCity> 
         <hotelState>sd</hotelCity> 
         <hotelState>AK</hotelState> 
         <suite_required>Yes</suite_required> 
         <email_provided>sdfeiwocmed</email_provided> 
         <hotelState__b_>HI</hotelState__b_> 
         </detail> 
         <detail> 
         <hotelReference>hotel_2</hotelReference> 
         <reservation_complete>Yes</reservation_complete> 
         <hotelAddress1>sd</hotelAddress1> 
         <hotelAddress2>sd</hotelAddress2> 
         <hotelCity>sd</hotelCity> 
         <hotelState>sd</hotelCity> 
         <hotelState>AK</hotelState> 
         <suite_required>Yes</suite_required> 
         <email_provided>sdfeiwocmed</email_provided> 
         <hotelState__b_>HI</hotelState__b_> 
         </detail> 
     </hotel_details> 
    <hotel_info> 

要這樣:

<AvailableHotels> 
    <hotel> 
     <HotelName>hotel_1</HotelName> 
     <HotelAddressLine1Text></HotelAddressLine1Text> 
     <HotelAddressLine2Text></HotelAddressLine2Text> 
     <HotelCityName></HotelCityName> 
     <HotelStateCode></HotelStateCode> 
     <HotelZip5Code></HotelZip5Code> 
     <HotelZip4Code></HotelZip4Code> 
     <reservation_status>booked</reservation_status> 
    </hotel> 
    <hotel> 
     <HotelName>hotel_2</HotelName> 
     <HotelAddressLine1Text></HotelAddressLine1Text> 
     <HotelAddressLine2Text></HotelAddressLine2Text> 
     <HotelCityName></HotelCityName> 
     <HotelStateCode></HotelStateCode> 
     <HotelZip5Code></HotelZip5Code> 
     <reservation_status>booked</reservation_status> 
     <HotelZip4Code></HotelZip4Code> 
    </hotel>    
    </AvailableHotels> 

我怎樣才能做到這一點?

+0

請提供更好的輸入示例 - 請參閱:[mcve] –

+0

輸入什麼?這是一個網絡服務電話。我提供了輸出示例,例如AvailabieLodgingAddress1和AvailableLodgingNames元素,它們作爲單獨元素以及SOAP服務返回的XML中的其他元素存在。這些需要映射到AavailableHotels複雜元素 – BreenDeen

+0

有什麼輸入? XSL transformation.Your示例的輸入不是結構良好的**,而是**取消了上下文。在XSLT中,上下文是至關重要的。 –

回答

0

循序漸進:

  • 創建輸出呈現AvailableHotels -hotel - HotelName部分
  • 創建AvailableHotels
  • 內部變量Curhotel酒店與標籤name()一起使用的參數作爲選擇標準apply-templates東西<xsl:apply-templates select="/hotel_info/hotel_details/detail[hotelReference=$curHotel]" />

(不在我的頭上,可能包含錯別字)

+0

非常感謝您 – BreenDeen

+0

發表您的工作樣式表的更新您的問題,以便其他人士可不幸的是受益 – stwissel

+0

,我不得不重新調整的數據,因爲它涉及到使用的API我不能泄露。 – BreenDeen