Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>Well neither your input nor your wanted result is well-formed with tags not being closed properly and the existence of an entity reference <code>&amp;pound;</code> to a not declared entity but if you want to group with XSLT 1.0 then have a look at the following XSLT 1.0 sample using <a href="http://www.jenitennison.com/xslt/grouping/muenchian.xml" rel="nofollow">Muenchian grouping</a>:</p> <pre><code>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt; &lt;xsl:output indent="yes"/&gt; &lt;xsl:strip-space elements="*"/&gt; &lt;xsl:key name="group" match="result" use="concat(hotel_rooms/hotel_id, '|', hotel_rooms/RoomID)"/&gt; &lt;xsl:template match="hotels"&gt; &lt;xsl:copy&gt; &lt;xsl:apply-templates select="result[generate-id() = generate-id(key('group', concat(hotel_rooms/hotel_id, '|', hotel_rooms/RoomID))[1])]"/&gt; &lt;/xsl:copy&gt; &lt;/xsl:template&gt; &lt;xsl:template match="result"&gt; &lt;xsl:copy&gt; &lt;xsl:copy-of select="hotel_rooms"/&gt; &lt;Rate&gt; &lt;xsl:copy-of select="key('group', concat(hotel_rooms/hotel_id, '|', hotel_rooms/RoomID))/Rate/*"/&gt; &lt;/Rate&gt; &lt;/xsl:copy&gt; &lt;/xsl:template&gt; &lt;/xsl:stylesheet&gt; </code></pre> <p>It transforms</p> <pre><code>&lt;hotels&gt; &lt;result&gt; &lt;hotel_rooms&gt; &lt;hotel_id&gt;6004&lt;/hotel_id&gt; &lt;NoOfNights&gt;1&lt;/NoOfNights&gt; &lt;RoomID&gt;1&lt;/RoomID&gt; &lt;RoomName&gt;Double for Sole Use&lt;/RoomName&gt; &lt;RoomSize/&gt; &lt;Max_Person&gt;1&lt;/Max_Person&gt; &lt;RackRate&gt;189&lt;/RackRate&gt; &lt;CurrencySymbol&gt;pound&lt;/CurrencySymbol&gt; &lt;NoOfRoomsAvailable&gt;4&lt;/NoOfRoomsAvailable&gt; &lt;RatePerDay&gt;27 Mar 2013_79.00&lt;/RatePerDay&gt; &lt;/hotel_rooms&gt; &lt;Rate&gt; &lt;RoomRatePlan&gt;Advance&lt;/RoomRatePlan&gt; &lt;numeric_price&gt;79.00&lt;/numeric_price&gt; &lt;/Rate&gt; &lt;/result&gt; &lt;result&gt; &lt;hotel_rooms&gt; &lt;hotel_id&gt;6004&lt;/hotel_id&gt; &lt;NoOfNights&gt;1&lt;/NoOfNights&gt; &lt;RoomID&gt;1&lt;/RoomID&gt; &lt;RoomName&gt;Double for Sole Use&lt;/RoomName&gt; &lt;RoomSize/&gt; &lt;Max_Person&gt;1&lt;/Max_Person&gt; &lt;RackRate&gt;189&lt;/RackRate&gt; &lt;CurrencySymbol&gt;pound&lt;/CurrencySymbol&gt; &lt;NoOfRoomsAvailable&gt;5&lt;/NoOfRoomsAvailable&gt; &lt;RatePerDay&gt;27 Mar 2013_89.00&lt;/RatePerDay&gt; &lt;/hotel_rooms&gt; &lt;Rate&gt; &lt;RoomRatePlan&gt;Standard&lt;/RoomRatePlan&gt; &lt;numeric_price&gt;89.00&lt;/numeric_price&gt; &lt;/Rate&gt; &lt;/result&gt; &lt;/hotels&gt; </code></pre> <p>into</p> <pre><code>&lt;hotels&gt; &lt;result&gt; &lt;hotel_rooms&gt; &lt;hotel_id&gt;6004&lt;/hotel_id&gt; &lt;NoOfNights&gt;1&lt;/NoOfNights&gt; &lt;RoomID&gt;1&lt;/RoomID&gt; &lt;RoomName&gt;Double for Sole Use&lt;/RoomName&gt; &lt;RoomSize /&gt; &lt;Max_Person&gt;1&lt;/Max_Person&gt; &lt;RackRate&gt;189&lt;/RackRate&gt; &lt;CurrencySymbol&gt;pound&lt;/CurrencySymbol&gt; &lt;NoOfRoomsAvailable&gt;4&lt;/NoOfRoomsAvailable&gt; &lt;RatePerDay&gt;27 Mar 2013_79.00&lt;/RatePerDay&gt; &lt;/hotel_rooms&gt; &lt;Rate&gt; &lt;RoomRatePlan&gt;Advance&lt;/RoomRatePlan&gt; &lt;numeric_price&gt;79.00&lt;/numeric_price&gt; &lt;RoomRatePlan&gt;Standard&lt;/RoomRatePlan&gt; &lt;numeric_price&gt;89.00&lt;/numeric_price&gt; &lt;/Rate&gt; &lt;/result&gt; &lt;/hotels&gt; </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload