RE: [xsl] pass value between xml and javascript

Subject: RE: [xsl] pass value between xml and javascript
From: "Chen Wang" <wangchen01@xxxxxxxxx>
Date: Sun, 9 Sep 2001 16:47:46 -0700
Thanks, Jen,

I use IE 6, I think it is msxml3 supported.  I also tried as described in
the page you referred, such as using xminst stuff, but the code I am using
still does not work.  Javascript seems still work, because if I put directly
the id instead of {cityid}, the function will work.  Here is part of the
code, can you tell me what is wrong?

Here is the code in xsl:
<script language="javascript">

 function WM_toggle(id){

   if (document.all){
     if(document.all[id].style.display == 'none'){
       document.all[id].style.display = 'block';
     } else {
      document.all[id].style.display = 'none';
  } else if (document.getElementById){
    if(document.getElementById(id).style.display == 'none'){
      document.getElementById(id).style.display = 'block';
    } else {
      document.getElementById(id).style.display = 'none';
<!--menu part-->
<xsl:for-each select="placetogo/urbanspace">
<a href="#" onclick="WM_toggle('{cityid}'); return false"><xsl:value-of
select="placename"/></a> <br />
<!--content part-->
 <xsl:for-each select="placetogo/urbanspace">
    <p align="center" class="main" style="display: none"><xsl:attribute
name="id"><xsl:value-of select="cityid"/></xsl:attribute>

   <xsl:value-of select="placename"/> <br />
   <img><xsl:attribute name="src"><xsl:value-of
select="photo/@img"/></xsl:attribute></img> <br />
   <xsl:value-of select="country"/>


In xml, it looks like this:
<?xml version="1.0" ?>

    <photo img="barcelona.jpg" />
    <description>Barcelona is a city where architecture and urbanism are

    <placename>Hong Kong</placename>
    <photo img="hong_kong.jpg" />
    <description>Hong Kong is one of the greatest maritime cities there has
ever been---noisy, boisterous, cluttered, and vibrant. </description>

So, in the menu part, the code will read in the city name from xml and the
city name is a link which when it is clicked it will toggle the
correspondent paragraph under content part.  I assume that
WM_toggle('{cityid}') will read in 'ba' and 'hk' for bacelona, and hong kong
link respectively, but the code does not work.  When I clicked the link, it
has error like: document.all[...].style is null or not an object.
Hi Chen,

> Of course it will not work for above line. But how to get that id
> between <cityid> into the WM_toggle function? I also tried this: <a
> href="#" onclick="WM_toggle('{cityid}'); return false">..</a>, but
> it did not work either.

The above should generate some HTML that looks like:

  <a href="#" onclick="WM_toggle('id'); return false">..</a>

If it doesn't, then you are probably using MSXML2 rather than MSXML3.
MSXML2 doesn't support XSLT, but rather a Microsoft-specific variant
which doesn't implement attribute value templates (the {}s). You can
find out more about the difference from the MSXML FAQ at

If that's what the transformation's producing but the Javascript
doesn't work, then there's something wrong with the Javascript, not
the XSLT.



Jeni Tennison

 XSL-List info and archive:

Do You Yahoo!?
Get your free address at

 XSL-List info and archive:

Current Thread