Wrox Programmer Forums
Go Back   Wrox Programmer Forums > XML > XSLT
|
XSLT General questions and answers about XSLT. For issues strictly specific to the book XSLT 1.1 Programmers Reference, please post to that forum instead.
Welcome to the p2p.wrox.com Forums.

You are currently viewing the XSLT section of the Wrox Programmer to Programmer discussions. This is a community of software programmers and website developers including Wrox book authors and readers. New member registration was closed in 2019. New posts were shut off and the site was archived into this static format as of October 1, 2020. If you require technical support for a Wrox book please contact http://hub.wiley.com
 
Old August 26th, 2008, 06:55 PM
Registered User
 
Join Date: Aug 2008
Posts: 8
Thanks: 0
Thanked 0 Times in 0 Posts
Default Passing parameters to XSL

I am trying to pass some parameters like
  <xsl:param name="callbackWorkflowId"/>

which is set from the Java XSLT transformer. I am trying to use it inside template match e.g.
  <xsl:template match="xhtml:form">
    <xsl:copy>
      <xsl:apply-templates select="@*"/>
        <input type="hidden" name="_TaskDetailsPortlet_WAR_JasperPortal_workflo wInstanceId" value="<xsl:value-of select="$callbackWorkflowId"/>";/>
    </xsl:copy>
  </xsl:template>

But I get transformation error:
The value of attribute "value" associated with an element type "null" must not contain the '<' character.
ERROR: 'The value of attribute "value" associated with an element type "null" must not contain the '<' character.'
FATAL ERROR: 'Could not compile stylesheet'

It looks like I can't use xsl:value-of within quotes of value attribute. I tried outside value tag and it works. What's the best way to do this? Thanks in advance.


 
Old August 26th, 2008, 11:11 PM
Friend of Wrox
 
Join Date: Jun 2008
Posts: 291
Thanks: 9
Thanked 29 Times in 29 Posts
Default

Try using <xsl:text> before and after <xsl:value-of select="$callbackWorkflowId"/>

 
Old August 27th, 2008, 02:13 AM
samjudson's Avatar
Friend of Wrox
 
Join Date: Aug 2007
Posts: 2,128
Thanks: 1
Thanked 189 Times in 188 Posts
Default

Try this:

<input type="hidden" name="_TaskDetailsPortlet_WAR_JasperPortal_workflo wInstanceId" value="{$callbackWorkflowId}"/>

They are called Attribute Template Values.

/- Sam Judson : Wrox Technical Editor -/
 
Old August 27th, 2008, 03:10 AM
mhkay's Avatar
Wrox Author
 
Join Date: Apr 2004
Posts: 4,962
Thanks: 0
Thanked 292 Times in 287 Posts
Default

XML doesn't allow elements to be nested inside attributes (and XSLT is XML...)

So use an attribute value template:

<input type="hidden" name="_TaskDetailsPortlet_WAR_JasperPortal_workflo wInstanceId"
value="{$callbackWorkflowId}"/>

You can nest any XPath expression between the curly braces.

Michael Kay
http://www.saxonica.com/
Author, XSLT 2.0 and XPath 2.0 Programmer's Reference
 
Old August 27th, 2008, 11:08 AM
Registered User
 
Join Date: Aug 2008
Posts: 8
Thanks: 0
Thanked 0 Times in 0 Posts
Default

{$tag} syntax worked. Thanks.






Similar Threads
Thread Thread Starter Forum Replies Last Post
passing parameters to xsl stylesheets smys123 Java Basics 2 June 22nd, 2007 03:42 PM
passing parameters from one xsl to another smys123 XSLT 4 June 21st, 2007 01:23 PM
Problems passing xsl parameters from javascript mxxz XSLT 4 November 3rd, 2006 11:21 AM
Passing parameters ceema Crystal Reports 0 February 15th, 2006 04:03 AM
passing command line parameters to xsl rameshnarayan XSLT 4 August 3rd, 2005 06:21 AM





Powered by vBulletin®
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
Copyright (c) 2020 John Wiley & Sons, Inc.