首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IE11上的XSLT处理?

IE11上的XSLT处理?
EN

Stack Overflow用户
提问于 2013-09-19 10:08:54
回答 6查看 24.8K关注 0票数 8

IE11中的XSLT处理发生了什么?

在IE8/9/10中,您可以使用:

代码语言:javascript
复制
if (window.ActiveXObject) {
    var xslt = new ActiveXObject("Msxml2.XSLTemplate");
    ....
}

在Chrome/Firefox/Safari上,您可以使用:

代码语言:javascript
复制
else { 
    var xsltProcessor = new XSLTProcessor();
}

但在IE11上,这两种方法都不受支持。有谁知道如何做到这一点吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2013-10-10 18:56:01

试一试

代码语言:javascript
复制
if (window.ActiveXObject || "ActiveXObject" in window)

这对我使用IE11起了作用,并允许我实例化ActiveX对象,因为已经绕过了标准的旧检查。

票数 12
EN

Stack Overflow用户

发布于 2017-11-05 21:51:30

这在Chrome/Edge/Firefox/IE11上适用于我

代码语言:javascript
复制
 function loadXMLDoc(filename) {
     if (window.ActiveXObject || "ActiveXObject" in window) {
         xhttp = new ActiveXObject("Msxml2.XMLHTTP");
     } else {
         xhttp = new XMLHttpRequest();
     }
     xhttp.open("GET", filename, false);
     xhttp.send("");
     return xhttp.responseXML;
 }


 if (window.ActiveXObject || "ActiveXObject" in window) {
     ie();
 } else {

     xml = loadXMLDoc("input.xml");
     xsl = loadXMLDoc("mmlctop2_0.xsl");

     if (document.implementation && document.implementation.createDocument) {
         xsltProcessor = new XSLTProcessor();
         xsltProcessor.importStylesheet(xsl);
         resultDocument = xsltProcessor.transformToDocument(xml, document);

         var serializer = new XMLSerializer();
         var transformed = serializer.serializeToString(resultDocument.documentElement);

         alert(transformed);
     }
 }

 // https://msdn.microsoft.com/en-us/library/ms753809(v=vs.85).aspx
 function ie() {

     var xslt = new ActiveXObject("Msxml2.XSLTemplate.3.0");
     var xslDoc = new ActiveXObject("Msxml2.FreeThreadedDOMDocument.3.0");
     var xslProc;
     xslDoc.async = false;
     xslDoc.load("mmlctop2_0.xsl");
     if (xslDoc.parseError.errorCode != 0) {
         var myErr = xslDoc.parseError;
         alert("You have error " + myErr.reason);
     } else {
         xslt.stylesheet = xslDoc;
         var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.3.0");
         xmlDoc.async = false;
         xmlDoc.load("input.xml");
         if (xmlDoc.parseError.errorCode != 0) {
             var myErr = xmlDoc.parseError;
             alert("You have error " + myErr.reason);
         } else {
             xslProc = xslt.createProcessor();
             xslProc.input = xmlDoc;
             xslProc.addParameter("param1", "Hello");
             xslProc.transform();
             alert(xslProc.output);
         }
     }


 }
票数 2
EN

Stack Overflow用户

发布于 2013-09-19 10:23:08

您可以考虑撒克逊CE,一个完全用JavaScript实现的XSLT2.0处理器。这将为所有浏览器提供一致的API,并允许您使用更强大的XSLT2.0语言而不是1.0编写代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18891860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档