This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Netscape XSL and ' charcter
- From: "Deshpande, Gururaj" <gururaj dot deshpande at flsmidth dot com>
- To: "'xsl-list at lists dot mulberrytech dot com'" <xsl-list at lists dot mulberrytech dot com>
- Date: Tue, 9 Apr 2002 19:15:33 -0400
- Subject: RE: [xsl] Netscape XSL and ' charcter
- Reply-to: xsl-list at lists dot mulberrytech dot com
> [Deshpande, Gururaj]
>
> > May be this is dumb question! Could you please tell me How can I
> > capture and save the output of the transform. I have only XSL and XML
> with
> > me and I am doing client transformation.
> >
>
> Load the file into Mozilla. After it has displayed, save it using the
> File/Save As menu item. This will show you the HTML. It may look a
> little
> strange since Mozilla adds some odd identifiers onto the element names,
> but
> your javascript will be visible in there.
>
> With Internet Explorer, use View/Source instead.
>
[Gururaj]
Your solutions don't work on both Netscape and IE. Both show XML
source file. When you say mozilla, I suppose it is not Netscape.
I can't use Mozilla as I have to write code for IE and Netscape
only.
Viewing HTML is a possibility on IE by installing separate tool
available on MSDN.
http://msdn.microsoft.com/downloads/default.asp?URL=/code/sample.asp?url=/ms
dn-files/027/000/543/msdncompositedoc.xml I don't know of any such tool
for Netscape.
> > > > 2) How can I use <xsl:attribute name="href">, instead of your
> > > > solution.
> > > >
>
> What I posted was not specific to Netscape.
>
> To use xsl:attribute, what you had would proably have been OK once you
> fixed
> the errors and got everything nesting correctly - and got rid of the
> xsl:text.
>
> Tom P
>
>
[Gururaj]
I have number of points to make.
----------------------------------------------------------------------------
---------------------------
I don't see any errors in XSL. Now when I click on the hyperlink, I
get javascript error 'test not defined', which means that Netscape is not
able to find the javascript function. How do we call javascript function in
XSL file on Netscape?
----------------------------------------------------------------------------
----------------------
Continuing our discussion......
xsl:attribute does not work on Netscape because Netscape shows
' instead of single quote. How do we tell Netscape to disable escaping?
This following example does not work in Netscape but works in IE.
<a> <xsl:attribute name="href">
javascript:test('<xsl:value-of select="prodxml"/>')
</xsl:attribute><xsl:value-of select="equipmentno"/></a>
</a>
----------------------------------------------------------------------------
-------------------------------
I can do this in many ways on IE. All these methods work fine in IE
and execute the javascript.
Method 1. (in this example I am using " instead of ')
<a><xsl:attribute name="href">
<xsl:value-of
select="concat('javascript:test("',prodxml,'")')"/>
</xsl:attribute>
<xsl:value-of select="equipmentno"/>
</a>
Method 2. (repeating again)
<a><xsl:attribute name="href">
javascript:test('<xsl:value-of select="prodxml"/>')
</xsl:attribute>
<xsl:value-of select="equipmentno"/>
</a>
Method 3.
<a><xsl:attribute name="href">
javascript:test('<xsl:value-of
select="prodxml"/>')
</xsl:attribute>
<xsl:value-of select="equipmentno"/>
</a>
Method 4.
<xsl:variable name="temp1">javascript:test('</xsl:variable>
<xsl:variable name="temp2">')</xsl:variable>
<a>
<xsl:attribute name="href">
<xsl:value-of
select="concat($temp1,prodxml,$temp2)"/>
</xsl:attribute>
<xsl:value-of select="equipmentno"/>
</a>
None of these methods work on Netscape. Why ? Netscape always
converts ' to ' and what I get is
javascript:test('prod39.xml'), but what I want is
javascript:test('prod39.xml')
----------------------------------------------------------------------------
--------------
By the way, all my XSLs work fine in IE 5+ (MSXML 3) without any
problems. I am only trying to fine tune my XSLs for Netscape and that is
where I am having problems. What I am developing is a pure client only
solution using XML, XSL and javascript. I don't have any server support.
I am pasting the XSL again for you point out where am I going wrong.
----------------------------------------------------------------------------
--------------
Who is not following XML standards -- Is it IE or Netscape?!
----------------------------------------------------------------------------
-------------
Thanks
equipment.xsl
----------------------------------------------------------------------------
---------------------
<?xml version='1.0' encoding="iso-8859-1"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title></title>
</head>
<SCRIPT language="JavaScript">
<xsl:comment><![CDATA[
function test(avalue) {
alert(avalue);
}
]]></xsl:comment></SCRIPT>
<body>
<table border="0" width="95%" cellspacing="2"
cellpadding="0" align="center">
<tr>
<td>Equipment No.</td>
<td>Description</td>
<td>Manufacture No.</td>
<td>Contract No.</td>
</tr>
<xsl:apply-templates select="plant/dept/eqpt"/>
</table>
</body>
</html>
</xsl:template>
<xsl:template match="plant/dept/eqpt">
<xsl:for-each select=".">
<xsl:sort select="equipmentno"/>
<tr><td><a href="javascript:test('{prodxml}')">
<xsl:value-of
select="equipmentno"/></a>
</td>
<td><xsl:value-of select="description"/></td>
<td><xsl:value-of select="manufactureno"/></td>
<td><xsl:value-of select="contractno"/></td>
</tr>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
----------------------------------------------------------------------------
---------------------------------------
XML file
<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="equipment.xsl"?>
<plant>
<dept deptid="231" deptname="Drier Crusher Department"
deptno="010">
<eqpt eqptid="39">
<equipmentno>010.AS100</equipmentno>
<description>High-top airslide 300 12 200</description>
<contractno>99-20043</contractno>
<manufactureno>5.704620</manufactureno>
<pdb_number>20837</pdb_number>
<prodxml>prod39.xml</prodxml>
</eqpt>
<eqpt eqptid="38">
<equipmentno>010.AS200</equipmentno>
<description>Low-bottom airslide 200 12
100</description>
<contractno/>
<manufactureno/>
<pdb_number>20837</pdb_number>
<prodxml>prod38.xml</prodxml>
</eqpt>
<eqpt eqptid="37">
<equipmentno>010.AS300</equipmentno>
<description>No-bottom airslide 200 12 100</description>
<contractno/>
<manufactureno/>
<pdb_number>20837</pdb_number>
<prodxml>prod37.xml</prodxml>
</eqpt>
</dept>
</plant>
----------------------------------------------------------------------------
------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list