|
[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
|

Cart








