Soweit ich das Problem verursacht wird, durch die sagen kann, Versuch (in einer inkludierten Sheet)
<msxsl:script language="JScript" implements-prefix="exsl">
this['node-set'] = function (x) {
return x;
}
</msxsl:script>
zu MSXML zu bekommen, den XSLT-Prozessor von IE und Edge-verwendet zu verwenden, unterstützen die exsl:node-set
Erweiterungsfunktion. Dieser Code, der msxsl:script
verwendet, funktioniert in IE aber scheint in Edge nicht unterstützt zu werden, wahrscheinlich, weil sie msxsl:script
aus Sicherheitsgründen deaktiviert haben oder weil ihre neue, schlankere Architektur in Edge es nicht unterstützt (ich vermute die Gründe, die ich nie gesehen habe jede Dokumentation zu Edge/MSXML sagt, dass msxsl:script
nicht unterstützt wird und warum). Für was es wert ist, habe ich jetzt versucht, dieses Problem auf Microsoft Edge um https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/7598626/ zu speichern.
Es gibt keinen einfachen Ausweg, mit Stylesheets so komplex wie Sie sie haben und von anderen erstellt Ich denke, Sie müssen die Autoren fragen, ob sie das Edge-Problem kennen und an einer Reparatur arbeiten oder ob sie informiert haben Microsoft über das Problem, dass es ein etablierter XSLT-Hack ist, msxsl:script
exsl:node-set
Kompatibilität über XSLT 1.0 Prozessoren zu erzwingen, die jetzt in Edge gebrochen ist.
Als schnelle Lösung Sie könnten versuchen, den msxsl:script
Block in dem importierten Sheet Kommentar- und ersetzen dann
<xsl:template name="xml-to-string">
<xsl:param name="node-set" select="."/>
<xsl:apply-templates select="exsl:node-set($node-set)/*" mode="xml-to-string">
<xsl:with-param name="depth" select="1"/>
</xsl:apply-templates>
</xsl:template>
mit
<xsl:template name="xml-to-string">
<xsl:param name="node-set" select="."/>
<xsl:choose>
<xsl:when test="function-available('msxsl:node-set')">
<xsl:apply-templates select="msxsl:node-set($node-set)/*" mode="xml-to-string">
<xsl:with-param name="depth" select="1"/>
</xsl:apply-templates>
</xsl:when>
<xsl:otherwise>
<xsl:apply-templates select="exsl:node-set($node-set)/*" mode="xml-to-string">
<xsl:with-param name="depth" select="1"/>
</xsl:apply-templates>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
habe ich nicht getestet, ob das das Problem für die jeweilige löst Eingabedokument und offensichtlich nicht, ob es Dinge für andere Eingabedokumente bricht.
vielleicht haben Sie aktiven Inhalt in Edge nicht zugelassen, siehe http://stackoverflow.com/questions/10529999/why-xslt8690-xslt-processing-failed-when-processing-local-xml-xslt – wero