3

不管什么原因,我不能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 上的 Mobile Safari,Windows 上的 Safari

我错过了什么吗?有解决方法XSLTProcessor()吗?无论如何,服务器端 XSLT 处理对于移动开发来说会更快吗?

4

2 回答 2

8

您的 JS 代码似乎是正确的。Safari(以及 safari mobile)确实支持 xslt。这只是一个无情的实施。问题是,有时它可能看起来不起作用,只是因为它在失败时根本不冗长。

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

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

于 2011-12-16T23:24:50.930 回答
1

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

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

于 2009-11-10T16:38:27.103 回答