문제

어떤 이유로 든, 나는 얻을 수 없습니다 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 처리는 모바일 개발에 더 빠를까요?

도움이 되었습니까?

해결책

기본 OS X 구현에는 OS X의 데스크탑 버전에있는 관련 라이브러리가 포함되어 있지 않기 때문에 Mobile Safari는 XSLT를 지원하지 않습니다.

어쨌든 서버 측 처리는 모바일 앱의 경우 더 빠릅니다. 휴대 전화에서 서버로 합리적으로 전환 할 수있는 처리는 승리입니다.

다른 팁

JS 코드가 옳은 것 같습니다. Safari (및 Safari Mobile도)는 XSLT 지원을 제공합니다. 그것은 단지 무자비한 구현 일뿐입니다. 문제는 때때로 그것이 실패 할 때 전혀 말이되지 않기 때문에 작동하지 않는 것처럼 보일 수 있다는 것입니다.

WebKit XSL 엔진은 LIBXSL을 기반으로 하므로이 라이브러리를 기반으로 모든 소프트웨어를 사용하여 문서에서 스타일 시트를 테스트 할 수 있습니다. 나는 Safari처럼 실패하지만 훨씬 더 많은 출력을 제공하는 XSLProc을 개인적으로 사용합니다.

문제에서 벗어날 수없는 경우 XSLT와 XML 파일을 게시하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top