Safari中没有XSLTProcessor()支持?

时间:2009-11-10 04:17:26

标签: iphone safari mobile-safari xslt

无论出于何种原因,我无法让XSLTProcessor()一直工作。

这是我的JS:

... xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xmlRequest.responseXML);
// Pass variables
xsltProcessor.setParameter(null, "sectionNumber", section);
xsltProcessor.setParameter(null, "entryNumber", elementNo);

// Transform XML using XSL
var resultDocument = xsltProcessor.transformToFragment(phonebookDump,document);
// Append to document
document.getElementById('three').appendChild(resultDocument);

正常运作: OSX上的Firefox, OSX上的iPhone模拟器, OSX上的Safari

中根本不起作用: iPhone上的移动Safari, Windows上的Safari

我错过了什么吗? XSLTProcessor()有解决方法吗?无论如何,服务器端XSLT处理能否更快地进行移动开发?

2 个答案:

答案 0 :(得分:7)

你的JS代码似乎是正确的。 Safari(以及Safari移动设备)也可以支持xslt。这只是一个无情的实现。问题是,有时它可能看起来不起作用只是因为它失败时根本不是详细的。

请记住,webkit xsl引擎基于libxsl,因此您可以使用基于此库的任何软件来根据您的文档测试样式表。我个人使用的xslproc就像safari一样失败,但提供了更多的输出。

如果您无法解决问题,只需发布​​xslt和XML文件。

答案 1 :(得分:2)

我非常确定Mobile Safari不支持XSLT,因为底层OS X实现不包括桌面版OS X中存在的相关库。

无论如何,对于移动应用来说,服务器端处理肯定会更快:任何可以合理地从手机转移到服务器的处理都是一种胜利。