Go Back   Velocity Reviews > Newsgroups > XML
User Name
Password
Register FAQ Members List Calendar Search Today's Posts Mark Forums Read

Reply

XML - output syntax problem

 
Thread Tools Search this Thread
Old 06-25-2003, 07:32 PM   #1
Default output syntax problem


Can any one tell me how to output the following string?



<%response.write "<tr><td><a href=""file://SERVER/mmlogs/TNAME" &
yearmonth & """>"& "MYJUNK" & "</a><BR></td></tr>" %>

<xsl:variable name="SERVER" select="MM_NAME" />
<xsl:variable name="TNAME" select="TOOL_NAME" />

I would want SERVER,TNAME and MYJUNK filled in at transform time.

I am using Python PYANA ver .8 (which is XLAN) to create the transform.
I have spent a lot of time messing around with this to no good end.



Bill Sneddon
  Reply With Quote
Old 06-25-2003, 10:51 PM   #2
Derek Harmon
 
Posts: n/a
Default Re: output syntax problem

"Bill Sneddon" <> wrote in message news:bdcpse$399$...
> <%response.write "<tr><td><a href=""file://SERVER/mmlogs/TNAME" &
> yearmonth & """>"& "MYJUNK" & "</a><BR></td></tr>" %>


In your XSLT stylesheet (Python-irrelevant) you'd have the following in an
xsl:template (whitespace/indentation added for readability), and you would
pass yearmonth (and any other Python variables) to the stylesheet as
parameters,

<![CDATA[<%response.write "]]>
<tr>
<td>
<a href="file://{$SERVER}/mmlogs/{$TNAME}{$YEARMONTH}" >
<xsl:value-of select="$MYJUNK" />
</a>
<br/>
</td>
</tr>
%>

Both parameters and variables can be referenced within your stylesheet's
templates with $PARAM_OR_VARIABLE_NAME. They can be injected
into quoted text (ie, attribute values) by enclosing the parameter or variable
reference in curly braces, as shown above.

> I have spent a lot of time messing around with this to no good end.


A few pointers if you'll be modifying the stylesheet to accept global
parameters is that it requires <xslaram name="YEARMONTH" />
(etc.) tags as the immediate children of the opening <xsl:stylesheet ...>
tag. Then your Python environment should offer a means for passing
arguments to the stylesheet before kicking off the Transform process.

Look for overloaded methods that take a list of arguments in the
documentation, and pass the Python variables you're using like
yearmonth to the stylesheet beforehand.

If yearmonth is a JSP or other after-the-fact variable identifier that you
don't have at transformation time, then what else you might try is to
set the xslutput mode to text and do something literal with CDATA
sections in the stylesheet, like (newlines added for readability):

<!-- . . . -->
<xsl:text>&lt;a href='file://</xsl:text>
<xsl:value-of select="$SERVER"/>
<xsl:text>/mmlogs/</xsl:text>
<xsl:value-of select="$TNAME"/>
<xsl:text>" & yearmonth & "'"></xsl:text>
<!-- . . . -->

Notice I took advantage of HTML's allowance for either single-quote
or double-quotes, having runs of """ can be problematic.


HTH,

Derek Harmon


  Reply With Quote
Old 06-26-2003, 04:26 PM   #3
Bill Sneddon
 
Posts: n/a
Default Re: output syntax problem... thanks

Thanks Derek,

I was able to make this work by changing the output to text and
and escaping all of my <> in my html tags.
It is NOT pretty but it works.

I did some reading but was unable to figure out how to make the output
be & < > inside a html output file.

What I would like is the behavior of <xslutput method='text'/> locally
within a file.

It seem that the <xslutput method='xml|html|text'/> is a top level
element. So I works for the whole transform. I would like to switch
between output methods in a transform where it make the XSL more
readable for me. Is there a way to do this?

If not, I wonder if it is being concidered for XSL 2.x or beyond


Bill


Derek Harmon wrote:
> "Bill Sneddon" <> wrote in message news:bdcpse$399$...
>
>><%response.write "<tr><td><a href=""file://SERVER/mmlogs/TNAME" &
>>yearmonth & """>"& "MYJUNK" & "</a><BR></td></tr>" %>

>
>
> In your XSLT stylesheet (Python-irrelevant) you'd have the following in an
> xsl:template (whitespace/indentation added for readability), and you would
> pass yearmonth (and any other Python variables) to the stylesheet as
> parameters,
>
> <![CDATA[<%response.write "]]>
> <tr>
> <td>
> <a href="file://{$SERVER}/mmlogs/{$TNAME}{$YEARMONTH}" >
> <xsl:value-of select="$MYJUNK" />
> </a>
> <br/>
> </td>
> </tr>
> %>
>
> Both parameters and variables can be referenced within your stylesheet's
> templates with $PARAM_OR_VARIABLE_NAME. They can be injected
> into quoted text (ie, attribute values) by enclosing the parameter or variable
> reference in curly braces, as shown above.
>
>
>>I have spent a lot of time messing around with this to no good end.

>
>
> A few pointers if you'll be modifying the stylesheet to accept global
> parameters is that it requires <xslaram name="YEARMONTH" />
> (etc.) tags as the immediate children of the opening <xsl:stylesheet ...>
> tag. Then your Python environment should offer a means for passing
> arguments to the stylesheet before kicking off the Transform process.
>
> Look for overloaded methods that take a list of arguments in the
> documentation, and pass the Python variables you're using like
> yearmonth to the stylesheet beforehand.
>



> If yearmonth is a JSP or other after-the-fact variable identifier that you
> don't have at transformation time, then what else you might try is to
> set the xslutput mode to text and do something literal with CDATA
> sections in the stylesheet, like (newlines added for readability):
>
> <!-- . . . -->
> <xsl:text>&lt;a href='file://</xsl:text>
> <xsl:value-of select="$SERVER"/>
> <xsl:text>/mmlogs/</xsl:text>
> <xsl:value-of select="$TNAME"/>
> <xsl:text>" & yearmonth & "'"></xsl:text>
> <!-- . . . -->
>
> Notice I took advantage of HTML's allowance for either single-quote
> or double-quotes, having runs of """ can be problematic.
>
>
> HTH,
>
> Derek Harmon
>
>


  Reply With Quote
Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump