[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: Including javascript functions in XSL Stylesheet


Subject: RE: Including javascript functions in XSL Stylesheet
From: Mike Brown <mbrown@xxxxxxxxxxxxx>
Date: Thu, 24 Feb 2000 15:11:16 -0700

> "Attribute value should begin with a quote".

XML markup characters in your JavaScript are not properly escaped. Your XSL
document is still XML and must be well-formed. There are various ways of
going about it, but they all have drawbacks. An external file is the best
place to put that stuff because it's hard to make JavaScript be well-formed.

This method relies on the XSL processor supporting
disable-output-escaping...

<xsl:text disable-output-escaping="yes"><![CDATA[
<!-- Java Script function
function getIndex(thisForm, buttonLabel) {

	arrElmnts = thisForm.elements
	
	for(i = 0; i < arrElmnts.length; i++) {
	
		if( arrElmnts[i].value == buttonLabel ) {
			return i		
		}

	}

	return -1
}
]]></xsl:text>


This method creates a comment node, but will fail if the JavaScript contains
"--" (which is not allowed in a comment)...

<xsl:comment><![CDATA[
<!-- Java Script function
function getIndex(thisForm, buttonLabel) {

	arrElmnts = thisForm.elements
	
	for(i = 0; i < arrElmnts.length; i++) {
	
		if( arrElmnts[i].value == buttonLabel ) {
			return i		
		}

	}

	return -1
}
]]></xsl:comment>


This method has the same restriction (and please pardon my mailer wrapping
the long line)...

<xsl:comment>Java Script function&#xA;function getIndex(thisForm,
buttonLabel) {&#xA;&#xA;&#x9;arrElmnts = thisForm.elements&#xA;&#x9;for(i =
0; i &lt; arrElmnts.length; i++) {&#xA;&#xA;&#x9;&#x9;if( arrElmnts[i].value
== buttonLabel ) {&#xA;&#xA;&#x9;&#x9;&#x9;return
i&#xA;&#x9;&#x9;}&#xA;&#xA;&#x9;}&#xA;&#xA;&#x9;return
-1&#xA;}</xsl:comment>


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



Current Thread
Keywords