| Author |
Need Help in working with javascript and XSL
|
SohJai
Greenhorn
Joined: Aug 01, 2001
Posts: 2
|
|
Hi, I have a couple of questions: 1) How do I use script in XSL to work in the HTML it calls it from? Below is what I tried to do to test things out but it doesn't work, no alert box appears. <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl='http://www.w3.org/TR/WD-xsl'> <xsl:template match='/'> <script language="Javascript"><![CDATA[ alert('ASDF') ]]</script> </xsl:template> </xsl:stylesheet> 2) How can I do script that actually runs in XSL? I want to creat a series of checkboxes each with the name cb1-cb*, * is the number of records that is filtered. <?xml version='1.0'?> <xsl:stylesheet xmlns:xsl='http://www.w3.org/TR/WD-xsl'> <xsl:template match='/'> <xsl:for-each select='data/item[date="27/08/2001"]' order-by='+ time'> <xsl:element name='input'> <xsl:attribute name='type'>checkbox</xsl:attribute> <xsl:attribute name='name'>*****</xsl:attribute> </xsl:element> </xsl:for-each> </xsl:template> </xsl:stylesheet> I have tried doing <xsl:script></xsl:script> but it returns error telling me I can't use xsl:script, I don't understand, I found many examples online using xsl:script. How else can I name my checkboxes in order? Thanks in Advance! SohJai [This message has been edited by SohJai (edited August 01, 2001).]
|
 |
Mapraputa Is
Leverager of our synergies
Sheriff
Joined: Aug 26, 2000
Posts: 10065
|
|
First, your namespace 'http://www.w3.org/TR/WD-xsl' refers to outdated version of MSXML XSLT processor - proprietary Microsoft's version of XSLT. It would be better to use 'http://www.w3.org/1999/XSL/Transform' Next, to see alert box appear, you need to include some HTML tags, to have a valid HTML page. So your whole XSLT will be: <?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/"> <html> <head> <script language="JavaScript"><![CDATA[ alert('ASDF') ]]></script> <body/> </head> </html> </xsl:template> </xsl:stylesheet> 2. <xsl:script> isn't a standard XSL element, if I am not mistaken, it' a Microsoft extension. The same about "order-by". All what you need is position() function - it returns a position of the current element in a node-set: <xsl:template match="/"> <html> <body> <form> <xsl:for-each select='data/item[date="27/08/2001"]'> <xsl:sort select="time"/> <input type="checkbox" name="{concat ('cb', position())}"/><br/> </xsl:for-each> </form> </body> </html> </xsl:template>
|
Uncontrolled vocabularies
"I try my best to make *all* my posts nice, even when I feel upset" -- Philippe Maquet
|
 |
 |
|
|
subject: Need Help in working with javascript and XSL
|
|
|