This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

RE: Including javascript functions in XSL Stylesheet


> "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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]