• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Knute Snortum
  • Bear Bibeault
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Frits Walraven
  • Carey Brown
  • Tim Holloway

Need Help in working with javascript and XSL

 
Greenhorn
Posts: 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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).]
 
Leverager of our synergies
Posts: 10065
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
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>
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!