Question

I'm using AspDotNetStorefront (this is why I have to use xsl) and my client would like to be able to sort products in a category. I decided to use tablesorter & use jsrender to render out the template.

I can do everything but create a special link because the xsl is stripping one of my curly braces for the jsrender template.

So I've got an object w/ productImage like /images/blah.jpg and the following works correctly.

<td>{{:productImage}}</td>

Great - so I try to put in in a link:

<td><a href='{{:productImage}}'>See the image</a></td>

And the xsl outputs my template to be:

<td><a href='{:productImage}'>See the image</a></td>

So it's not being rendered correctly. I've tried all kinds of ideas over the last couple hours but cannot get this to work correctly. How do I keep XSL from stipping my curly braces?

Was it helpful?

Solution

XSLT sees the attribute value template in your {}. the spec says:

a double left or right curly brace outside an expression will be replaced by a single curly brace.

with that said, doubling the amount of curly braces seems to do the trick. The following node put in the XSLT:

<something a="{{{{a}}}}"/>

produces the following result tree:

<something a="{{a}}"/>

UPDATE: the XSLT 2.0 spec has a little more to say about double {{ and }} in the attribute value templates section.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top