|
[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: generalisation of template
Hi Andrew,
> I have this template (c/o Ken) that traverses some nested XML and
> calls row_even or row_odd. The problem is that it uses the actual
> element names (qnames, right?) to recursively make its way through
> the tree. This is fine but a neater (and more future proof) solution
> would be a general template that could be applied to all 'nesting
> depths'. So, can this be done without using 'mplx' and using
> something like 'child[position()=last()][child has child nodes(!)]'
> ?? Can you even call templates in this way?
Rather than having:
> <xsl:template match="mpl0|mpl1|mpl2|mpl3|mpl4">
You could have:
<xsl:template match="*[starts-with(name(), 'mpl') and
number(substring-after(name(), 'mpl'))]">
And rather than having:
> <xsl:apply-templates select="mpl1|mpl2|mpl3|mpl4">
You could similarly have:
<xsl:apply-templates select="*[starts-with(name(), 'mpl') and
number(substring-after(name(),
'mpl'))]">
Whether you actually want to test whether the substring after the
'mpl' in the name is actually a number is up to you - if you don't
have any other elements in your source document that start with 'mpl'
then you don't have to, of course.
> Also :) If the solution could include outputting a '>' or similar at
> the first element of each level (like a directory + or - ) that has
> child nodes (that have child nodes) then I would be extremely
> greatful
I think that you can do that just by testing the position() of the
node that you're on. So just add something like:
<xsl:if test="position() = 1">
<xsl:text> - </xsl:text>
</xsl:if>
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
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








