Help | Site Map
Connecting Tech Pros Worldwide
 
 
LinkBack Thread Tools
  #1  
Old December 26th, 2006, 03:05 PM
Zzzbla
Guest
 
Posts: n/a
Default client side xslt transformation in Firefox

Hi all,

anyone has a live example of loading an xml file from a server, an xslt
file from the server, then transforming the xml using the xslt and
outputing the results (preferably with appendChild)?

I'm trying to write a function to do just that (given url to xml, url
to xslt and elementid). Works a charm on IE. Can't get it to work with
Firefox.

Thanks in advance,
R. Green

  #2  
Old December 26th, 2006, 03:45 PM
Martin Honnen
Guest
 
Posts: n/a
Default Re: client side xslt transformation in Firefox

Zzzbla wrote:
Quote:
anyone has a live example of loading an xml file from a server, an xslt
file from the server, then transforming the xml using the xslt and
outputing the results (preferably with appendChild)?
Here is an example
<http://home.arcor.de/martin.honnen/javascript/2006/12/test2006122601.html>
tested with Mozilla, Opera 9, IE 6.




--

Martin Honnen
http://JavaScript.FAQTs.com/
  #3  
Old December 26th, 2006, 04:05 PM
Zzzbla
Guest
 
Posts: n/a
Default Re: client side xslt transformation in Firefox

Thank you Martin!!!


Martin Honnen wrote:
Quote:
Zzzbla wrote:
>
Quote:
anyone has a live example of loading an xml file from a server, an xslt
file from the server, then transforming the xml using the xslt and
outputing the results (preferably with appendChild)?
>
Here is an example
<http://home.arcor.de/martin.honnen/javascript/2006/12/test2006122601.html>
tested with Mozilla, Opera 9, IE 6.
>
>
>
>
--
>
Martin Honnen
http://JavaScript.FAQTs.com/
  #4  
Old December 26th, 2006, 06:05 PM
=?ISO-8859-1?Q?P=E8re_No=EBl?=
Guest
 
Posts: n/a
Default Re: client side xslt transformation in Firefox

Martin Honnen <mahotrash@yahoo.dewrote:
Quote:
Here is an example
<http://home.arcor.de/martin.honnen/javascript/2006/12/test2006122601.html>
tested with Mozilla, Opera 9, IE 6.
Fine thanks !

this example works also on Mac OS X 10.4.8 with :

WebKit (latest nightly)
Firefox 2.0.x
Flock 0.7.8
Opera 9.10
Camino 1.1a1+

don't work with :
Safari 2.0.4
Shiira 2.0b1
SunRiseBrowser 0.895 (latest)
TrailBlazer 0.5


may be that's only a question of javascript core version ???

how to get that version number ?
--
Père Noël
  #5  
Old December 26th, 2006, 08:45 PM
VK
Guest
 
Posts: n/a
Default Re: client side xslt transformation in Firefox


Zzzbla wrote:
Quote:
anyone has a live example of loading an xml file from a server, an xslt
file from the server, then transforming the xml using the xslt and
outputing the results (preferably with appendChild)?
>
I'm trying to write a function to do just that (given url to xml, url
to xslt and elementid). Works a charm on IE. Can't get it to work with
Firefox.
(One more sample besides the one by Martin Honnen)

Full sample at <http://jsnet.sourceforge.net/tmp/xslt/dxslt.html>

That may be confusing because MSXML and Gecko are using different
patterns.

In MSXML you
1) obtaining XML data
2) obtaining XSL template
3) applying XSL template onto XML data; this automatically invokes
XSLT processor

// 1
var xml = new ActiveXObject('Microsoft.XMLDOM');
xml.async = false;
xml.load('demo.xml');
// 2
var xsl = new ActiveXObject('Microsoft.XMLDOM');
xsl.async = false;
xsl.load('demo.xsl');
// 3
document.body.
insertAdjacentHTML('beforeEnd',
xml.transformNode(xsl));

In Gecko you
1) creating an instance of XSLT processor
2) loading XML data to be processed
3) loading XSL template to be used
4) "charging" the processor with XSL template
5) passing XML data through the processor.

// 1
var XSLT = new XSLTProcessor;

// 2
var $xml = new XMLHttpRequest;
$xml.open('GET', 'demo.xml', false);
$xml.overrideMimeType('text/xml');
$xml.send(null);
var xml = $xml.responseXML;

// 3
var $xsl = new XMLHttpRequest;
$xsl.open('GET', 'demo.xsl', false);
$xsl.overrideMimeType('text/xml');
$xsl.send(null);
var xsl = $xsl.responseXML;

// 4
XSLT.importStylesheet(xsl);

// 5
document.body.
appendChild(XSLT.transformToFragment(xml, document));

Full sample at <http://jsnet.sourceforge.net/tmp/xslt/dxslt.html>

P.S. I wanted to reference a MDC source first - this raised again my
suspicion that there is some kind of sabotage by anonymous Wiki
editors. Way too many - IMHO - articles are not just not full or
erroneous. Not just that: they are rather sophistically written with a
lot of convincing code samples but with a few key errors or omissions
well hidden here and there.
<http://developer.mozilla.org/en/docs/Using_the_Mozilla_JavaScript_interface_to_XSL_Tran sformations>
is very demonstrative in this aspect.
That can a winter paranoia from my side of course.

  #6  
Old December 26th, 2006, 09:05 PM
=?ISO-8859-1?Q?P=E8re_No=EBl?=
Guest
 
Posts: n/a
Default Re: client side xslt transformation in Firefox

VK <schools_ring@yahoo.comwrote:
Quote:
>
(One more sample besides the one by Martin Honnen)
have used the way of Martin to build a menu, here :

<www.yvon-thoraval.com/Canvas/menu.html>

a screenshot of it :

<www.yvon-thoraval.com/Canvas/menu.png>

it works with Opera 9.1 and Firefox 2 but not with WebKit (latest
nightly).

WebKit is able to work with the example of martin i've reproduced here :

<www.yvon-thoraval.com/JS/xslt>

i think for the menu case the prob comes from my xsl sheet :

<xsl:variable name="href"><xsl:value-of select="link"/></xsl:variable>
<li class="local"><a
href="javasript:setPage(&quot;{$href}&quot;);"><xs l:value-of
select="label"/></a></li>

--
Père Noël
  #7  
Old December 26th, 2006, 09:25 PM
VK
Guest
 
Posts: n/a
Default Re: client side xslt transformation in Firefox


Père Noël wrote:
Quote:
href="javasript:setPage(&quot;{$href}&quot;);"
OT to XSLT, but should be "javascript" - unless a typo in the post.

Also if you are not resolving entities, in HTML it will be as it is
href="javascript:setPage(&quot;URL&quot;);"
which is not a valid JavaScript call.

if you are resolving entities, then in HTML it will be
href="javasript:setPage("URL");"
with nested quotes and UA going nuts.

If entities are resolved on parsing then should be:
href="javasript:setPage(&apos;{$href}&apos;);"

  #8  
Old December 27th, 2006, 04:25 AM
=?ISO-8859-1?Q?P=E8re_No=EBl?=
Guest
 
Posts: n/a
Default Re: client side xslt transformation in Firefox

VK <schools_ring@yahoo.comwrote:
Quote:
OT to XSLT, but should be "javascript" - unless a typo in the post.
that was a typo of me ))
Quote:
if you are resolving entities, then in HTML it will be
href="javasript:setPage("URL");"
with nested quotes and UA going nuts.
i get that output in HTML : verified by DOM Inspector and Firefox.

--
Père Noël
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over network members.
Post your question now . . .
It's fast and it's free

Popular Articles