This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Sort list based on matching equal to another element


Hi Linda,

> The list I have displays the LOCATION_NAME sorted by
> LOCATION_NAME & START_TIME.
>
> I need the COST to display in the next table cell, by
> matching the SHIPMENT_GID from the REPORT_CUSTOMER
> element to the REPORT_COST element.
>
> This is what I have for the list of the SHIPMENT_GID
> from the REPORT_CUSTOMER - which works great but I
> can't figure out how to display the associated cost
> for the matching SHIPMENT_GID.

I think from what you've described you want to take the SHIPMENT_GID
from the current REPORT_CUSTOMER and use that to access the
COST element that has that particular value for its sibling
SHIPMENT_GID.

Whenever you want to repeatedly access a set of elements by their
value on a particular child (or attribute), you should use a key to
make the search more efficient. So you should set up a key that
indexes the COST elements by their SHIPMENT_GID like so:

<xsl:key name="costs-by-gid"
         match="COST"
         use="parent::ROW/parent::REPORT_COST/ROW/SHIPMENT_GID" />

Now if you have a GID of '123' you could get the COST for that
shipment with:

  key('costs-by-gid', '123')

If the GID is held in the SHIPMENT_GID child element of the current
ROW then you can display the value with:

  <xsl:value-of select="key('costs-by-gid', SHIPMENT_GID)" />

or if you're iterating over elements that have the SHIPMENT_GID
elements as their children then you can sort on that value with:

  <xsl:value-of select="key('costs-by-gid', SHIPMENT_GID)" />

Note that you need something a little bit more complicated given the
XML that you describe because the ROW elements that you're iterating
over are not the ROW elements that contain the SHIPMENT_GID for a
particular REPORT_CUSTOMER.

I hope that helps,

Jeni

---
Jeni Tennison
http://www.jenitennison.com/


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]