RE: [xsl] href problem...using CDATA needed?

Subject: RE: [xsl] href problem...using CDATA needed?
From: "Passin, Tom" <tpassin@xxxxxxxxxxxx>
Date: Fri, 13 Jun 2003 16:24:30 -0400
[ Kathy Burke]
> ... I've also tried using 
> a javascript
> within CDATA.
> 
> 			<head>	
> 			  <msxsl:script language="javascript"
> implements-prefix="kb"><![CDATA[
> 
> 				function openWindow()
> 			  {
> 			  window.open(), 'Link Window', 'toolbar=1,
> menubar=1 resizable=1, dependent=0, status=0
> 					width=400, height=300, left=25,
> top=25')
> 				}
> 			  ]]>
> 			  </msxsl:script>
> 			</head?
> 
> then used this template:
> 
> 	<xsl:template match="link">
>  	  <a href="javascript:openWindow({@url})">
> 	<xsl:apply-templates/></a>
> 	</xsl:template>
> 
> with no success.
> 
> I'm not asking a javascript question...I'm asking how I can 
> correctly refer
> to the {@url} within my href.
> 

Well, two things.  We can have no idea about {@url} giving you "no
success" - we do not know what you _did_  get, we do not know what the
source xml is like, and we do not know what context your template is
seeing.

That's one. Second, I see no purpose for the msxsl:script element.  Are
you not just producing javascript?  That is what it looks like.  If you
are producing an html page, you want to end up with a script element, so
just use one -

<head>	
<script language="javascript">
function openWindow()
{
    window.open( 'Link Window', 'toolbar=1,
    menubar=1 resizable=1, dependent=0, status=0,
    width=400, height=300, left=25,
     top=25')
}
</script>
</head>

(I corrected a few typos) Using a CDATA section is OK, but you do not
need it here because there is nothing that needs escaping.

In your template, it seems very unusual to have an apply-templates
instruction within the body of an anchor element.  An anchor is supposed
to contain only inline elements - it is not clear why you would need
apply-templates. If it is going to return structured information, an
anchor element is the wrong place for it.  If it is going to return a
bit of text like a label, chances are you can do it with just
xsl:value-of.

Cheers,

Tom P

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread