将XML转换为XSLT在IE 11中不起作用
我正在使用IE11并试图修复一个以前可以正常工作的应用程序。它仍然在Chrome中工作。 XML是从存储过程返回的,但xslt无法处理它。以下是.js文件中的代码:将XML转换为XSLT在IE 11中不起作用,xml,xslt,Xml,Xslt,我正在使用IE11并试图修复一个以前可以正常工作的应用程序。它仍然在Chrome中工作。 XML是从存储过程返回的,但xslt无法处理它。以下是.js文件中的代码: function completeReview(data) { xml = data.responseXML; xsl = asyncLoadXSLT('../Styles/XSLT/MyXslt.xslt'); transformXSLT(xml, xsl, "CommentContainer");
function completeReview(data) {
xml = data.responseXML;
xsl = asyncLoadXSLT('../Styles/XSLT/MyXslt.xslt');
transformXSLT(xml, xsl, "CommentContainer");
$("#txtComment").val('');
}
//Transform results
function transformXSLT(xml, xslt, containerID) {
$('#' + containerID).html(" ");
// code for IE for client side xsl transformation
if (window.ActiveXObject || xhttp.responseType == "msxml-document") {
ex = xml.transformNode(xsl);
$('#' + containerID).html(ex);
}
代码错误在
ex = xml.transformNode(xsl);
错误显示:
JavaScript runtime error: Object doesn't support property or method 'transformNode'.
我不确定问题出在哪里。我尝试通过引入-
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
在xslt文件中,这没有帮助。
我是这样做的:
<xsl:template match="DATA">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE9" />
<xsl:for-each select="Comment">
...
...
但我不知道该如何包含它。
请指导我应该采取哪些必要步骤来解决此问题。我们需要查看相关代码,您拥有的
xml
变量设置为data.responseXML
但您尚未显示创建data
对象并发出请求的代码。如果data
是XMLHttpRequest
对象,在发出请求之前,请确保为IE设置了data.responseType='msxml document'
。此外,您可能需要更详细地解释代码是否在IE 11之前的IE版本中工作,但从未在IE 11中工作过,或者它是否在IE 11中工作过并已停止工作。在后一种情况下,您可能需要解释发生了什么变化。至于元
,您需要使用您显示的脚本代码将其放入HTML文档中,而不是放入XSLT或XSLT生成的HTML中。我们需要查看相关代码,您拥有的xml
变量被设置为data.responseXML
,但您尚未显示创建data
对象并发出请求的代码。如果data
是XMLHttpRequest
对象,在发出请求之前,请确保为IE设置了data.responseType='msxml document'
。此外,您可能需要更详细地解释代码是否在IE 11之前的IE版本中工作,但从未在IE 11中工作过,或者它是否在IE 11中工作过并已停止工作。在后一种情况下,您可能需要解释发生了什么变化。至于元
,您需要使用所显示的脚本代码将其放入HTML文档中,而不是放入XSLT或XSLT生成的HTML中。