Android浏览器是否能够执行xsl转换?

时间:2010-10-01 14:40:29

标签: android browser xslt

我有一个xml文件,我希望使用xsl-document进行转换,但我似乎无法使其在最新的Android版本上运行。

我尝试在xml中添加<?xml-stylesheet/>标记,但这在本机浏览器或Dolphin浏览器中都不起作用。

E.g:

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="style.xsl"?>
<xmldata>Hello world</xmldata>

<?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>

应该生成斜体文本,它在大多数桌面浏览器中都会生成(chrome具有令人讨厌的共享脚本根策略,确保它仅在文件不在本地光盘上时才有效。) 但它不适用于移动浏览器。

有没有办法让转换脚本发生在客户端,或者是服务器端唯一的选择?

8 个答案:

答案 0 :(得分:2)

查看Android issue 9312 总结一下:Android浏览器直到2.1才支持XSLT客户端。

答案 1 :(得分:1)

我有一个完全用XML,XSLT和XHTML开发的网站。它不会在我的Android DroidX手机中呈现,而是在其他地方的所有浏览器中呈现。关于这是否意味着Android不支持XSLT,我没有明确的答案。

答案 2 :(得分:1)

在Opera mini中运行良好。我使用的是Android 1.5平板电脑。

答案 3 :(得分:1)

默认的Android浏览器开始支持在Android 4.0,Ice Cream Sandwich中显示的版本中的xsl转换。

最终开始支持xsl的其他移动浏览器是Opera MobileChrome Android Browser,目前处于测试阶段。

答案 4 :(得分:0)

是的,因为Android平台包含了 Webkit 布局引擎。

据我所知,它确实支持XSLT。 我确信webkit的桌面版本,但您也可以查看 WebKit's XSLT implementation 以获取深入信息。

答案 5 :(得分:0)

Webkit通过使用包含的libxslt库确实具有XSLT功能。我已经使用样式表声明以及使用Javascript XSLTProcessor类成功完成了转换。这适用于除Android和iPhone之外的大多数webkit浏览器。

似乎为了节省空间,他们故意禁用了xslt功能,我的猜测是它是针对移动浏览器进行的优化。

在Galaxy Tablet上使用Android 2.2进行测试,并且XSLTProcessor类不存在。

答案 6 :(得分:0)

我刚刚使用Froyo浏览器测试了一个XSLT示例,结果是一个完全白页。但是我为Android安装了Opera移动浏览器,它完美呈现了我的例子。

我无法在Opera mini中测试,因为我的测试是在没有互联网可访问的局域网中提供的。

答案 7 :(得分:0)

我下载了Opera Mobile版本:12.00我的欲望和XSLT终于在我的手机上运行了。所以一个很好的建议是在市场上下载Opera Mobile。