Согласно этой странице , вы можете использовать
XSLTProcessor.addParameter("Parameter Name", "Parameter Value");
, где XSLTProcessor
создается с
var XSLTCompiled = new ActiveXObject("MSXML2.XSLTemplate");
XSLTCompiled.stylesheet = XSL.documentElement;
var XSLTProcessor = XSLTCompiled.createProcessor();
Вызов преобразования также отличается.
XSLTProcessor.transform();
В любом случае, похоже, что есть довольно подробное объяснение того, что вы просите.
Я сделал кросс-браузерное XSLT-преобразование некоторое время назад, и вот код, который я использовал. createDocument
- это просто функция для возврата документа DOM. Я не делал параметры таблицы стилей, так что, возможно, это немного не по теме, но в любом случае это работает на IE6 + и Firefox 1.5+.
// arguments can be string (uri of document) or document node
function xslTransform( content, transform, options )
{
if ("string" == typeof content) content = createDocument( content );
if ("string" == typeof transform) transform = createDocument( transform );
var targetEle;
if (options && options.target) targetEle = document.getElementById(options.target);
if (targetEle && options.replace)
while (targetEle.hasChildNodes())
targetEle.removeChild( targetEle.firstChild );
if (window.XSLTProcessor)
{
var processor = new XSLTProcessor();
processor.importStylesheet( transform );
var frag = processor.transformToFragment( content, document );
if (targetEle)
targetEle.appendChild( frag );
}
else if (window.ActiveXObject)
{
if (targetEle)
targetEle.innerHTML = content.transformNode( transform );
}
else return "XSLT not supported";
}