[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Filtering the nodes passed to a template...
Thanks for the reply Mike, I'm still having problems though...perhaps if I explain it more cleary... This is my XML:- <report> <payments> <payment id="..."/> <payment id="..."/> </payments> <paymentTypes> <paymentType paymentTypeRef="..." desc="..."/> <paymentType paymentTypeRef="..." desc="..."/> </paymentTypes> </report> Basically, I want to 1. print out all the @paymentTypeRef and @desc only if the @paymentTypeRef matches a payments/@id 2. if the @paymentTypeRef matches the one printed before it, I only want the @desc displayed ...So in the end, my output will look like this PaymentType Desc CASH Cash CCDEBTOR Amex Visa Diners CHEQUE Cheque I can do no.1 fine with the following line... <xsl:apply-templates select="paymentType[@paymentTypeRef = /report/payments/payment/@id]"> and in that template I use... <xsl:if test="@paymentTypeRef != ../preceding-sibling::paymentType/@paymentTypeRef]"> <xsl:value-of select="@paymentTypeRef"/> </xsl:if> but this seems to reference the original XML and not the filtered XML which is passed into the template. So I need a way of accessing and testing values in the filtered node set, and not the original. Thanks again, Callum XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|