I have an xml file I wish to transform using an xsl-document, but I can't seem to make it work on even the latest available Android versions.
I tried adding a <?xml-stylesheet/>
tag to the xml, but that didn't work in either the native browser or in Dolphin Browser.
E.g:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<xmldata>Hello world</xmldata>
and
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/xmldata">
<em><xsl:value-of select="/xmldata"/></em>
</xsl:template>
</xsl:stylesheet>
is supposed to generate italic text, which it does in most desktop browsers (chrome has that annoying shared script root policy that ensures it only works when the files are not located on a local disc.)
But it won't work in the mobile browser.
Is there a way to script the transform to happen client-side, or is the only option to do it server-side?
See Android issue 9312
To summarize: Android browser does not support XSLT client-side until 2.1.
I have a site completely developed with XML, XSLT and XHTML. It does not render in my Android DroidX phone but renders in all the browsers elsewhere. I have no definitive answer as to if this means Android does not support XSLT.
Works fine in Opera mini. I am using Android 1.5 tablet.
The default Android Browser starts supporting xsl transforms in the version that shows up in Android 4.0, Ice Cream Sandwich.
Other mobile browsers that have finally started supporting xsl are Opera Mobile and the Chrome Android Browser, currently in beta.
Yes, It very much is since the Android platform incorporates the Webkit layout engine.
And to my knowledge it does support XSLT.
I am sure of desktop versions of webkit but you can also take a look at WebKit's XSLT implementation for in-depth info.
Webkit does have XSLT functionality through the use of the included libxslt library. I have successfully done transforms using the stylesheet declaration as well as using the Javascript XSLTProcessor class. This works in most webkit browsers except for Android and iPhone.
It seems that to save space they have purposely disabled the xslt functionality and my guess would be that it was a an optimization done for mobile browsers.
Tested using Android 2.2 on the Galaxy Tablet and the XSLTProcessor class does not exist.
I just tested an XSLT example with Froyo browser and the result is a totally white page. However I installed Opera mobile browser for Android and it renders my example perfectly.
I cannot test in Opera mini because my test is served in a no internet accesible LAN.
I downloaded Opera Mobile Version: 12.00 for my Desire and XSLT finally works on my phone. So a great tip is to download Opera Mobile in Market.