无论出于何种原因,我无法让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处理能否更快地进行移动开发?
答案 0 :(得分:7)
你的JS代码似乎是正确的。 Safari(以及Safari移动设备)也可以支持xslt。这只是一个无情的实现。问题是,有时它可能看起来不起作用只是因为它失败时根本不是详细的。
请记住,webkit xsl引擎基于libxsl,因此您可以使用基于此库的任何软件来根据您的文档测试样式表。我个人使用的xslproc就像safari一样失败,但提供了更多的输出。
如果您无法解决问题,只需发布xslt和XML文件。
答案 1 :(得分:2)
我非常确定Mobile Safari不支持XSLT,因为底层OS X实现不包括桌面版OS X中存在的相关库。
无论如何,对于移动应用来说,服务器端处理肯定会更快:任何可以合理地从手机转移到服务器的处理都是一种胜利。