Нет поддержки XSLTProcessor () в Safari? - PullRequest
2 голосов
/ 10 ноября 2009

По какой-то причине я не могу заставить 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);

Работает нормально в : Firefox на OSX, Симулятор iPhone на OSX, Safari на OSX

Не работает вообще в : Мобильное Сафари на iPhone, Safari на Windows

Я что-то упустил? Есть ли обходной путь к XSLTProcessor()? Будет ли обработка XSLT на стороне сервера быстрее для разработки мобильных приложений?

Ответы [ 2 ]

7 голосов
/ 17 декабря 2011

Ваш код JS кажется правильным. Safari (и Safari Mobile) также имеет поддержку xslt. Это просто беспощадная реализация. Проблема в том, что иногда может показаться, что он не работает только потому, что совсем не многословен, когда терпит неудачу.

Помните, что движок webkit xsl основан на libxsl, поэтому вы можете использовать любое программное обеспечение на основе этой библиотеки для проверки таблицы стилей на соответствие вашему документу. Я лично использую xslproc, который терпит неудачу точно так же, как сафари, но дает намного больше вывода.

Если вы не можете выйти из проблемы, просто опубликуйте файлы xslt и XML.

2 голосов
/ 10 ноября 2009

Я почти уверен, что Mobile Safari не поддерживает XSLT, поскольку базовая реализация OS X не включает в себя соответствующие библиотеки, присутствующие в настольных версиях OS X.

Обработка на стороне сервера определенноВ любом случае, будьте быстрее для мобильного приложения: любая обработка, которую вы можете разумно перенести с телефона на сервер, является выигрышем.

...