我有一个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具有令人讨厌的共享脚本根策略,确保它仅在文件不在本地光盘上时才有效。) 但它不适用于移动浏览器。
有没有办法让转换脚本发生在客户端,或者是服务器端唯一的选择?
答案 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 Mobile和Chrome 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。