出于某种原因,我无法让 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 上的火狐浏览器, OSX 上的 iPhone 模拟器, OSX 上的 Safari
根本不起作用: iPhone 上的移动 Safari, Windows 上的 Safari
我错过了什么吗? XSLTProcessor()
有解决方法吗?对于移动开发来说,服务器端 XSLT 处理是否会更快?
最佳答案
你的 JS 代码看起来是正确的。 Safari(以及 Safari Mobile)实际上具有 xslt 支持。这只是无情的实现。问题是,有时它可能看起来不起作用,只是因为它失败时根本不冗长。
请记住,webkit xsl 引擎基于 libxsl,因此您可以使用基于此库的任何软件来根据文档测试样式表。我个人使用的 xslproc 与 safari 一样失败,但提供了更多的输出。
如果您无法解决问题,只需发布 xslt 和 XML 文件即可。
关于iphone - Safari 中不支持 XSLTProcessor() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1705584/