Mozilla не поддерживает его, есть открытый отчет об ошибке https://bugzilla.mozilla.org/show_bug.cgi?id=213996.
Что касается Chrome, я написал короткий тестовый пример с входной XHTML является http://home.arcor.de/martin.honnen/xslt/test2016012402.xml (только короткий отрывок XHTML с head
, чтобы добавить некоторые XSLT затем с помощью XSLT) и таблицы стилей http://home.arcor.de/martin.honnen/xslt/test2016012401.xsl делать XHTML для преобразования XHTML, используя псевдоним для защиты любого XSLT и XSLT вложенная XHTML элементы результата:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:axsl="http://example.com/xsl-alias"
xmlns:axhtml="http://example.com/xhtml-alias"
exclude-result-prefixes="xhtml axsl axhtml"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:output method="xml" indent="yes"/>
<xsl:namespace-alias stylesheet-prefix="axsl" result-prefix="xsl"/>
<xsl:namespace-alias stylesheet-prefix="axhtml" result-prefix="#default"/>
<xsl:template match="@* | node()">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="xhtml:head">
<xsl:copy>
<xsl:apply-templates select="@* | node()"/>
<axsl:stylesheet version="1.0">
<axsl:template match="/">
<axhtml:p>XSLT created paragraph.</axhtml:p>
</axsl:template>
</axsl:stylesheet>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
и Chrome, кажется, преобразование, просто отлично, консоль на обследование показывает, что результат элементы находятся в нужном пространстве имен:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test</title>
<axsl:stylesheet xmlns:axsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><axsl:template match="/"><axhtml:p xmlns:axhtml="http://www.w3.org/1999/xhtml">XSLT created paragraph.</axhtml:p></axsl:template></axsl:stylesheet></head>
<body>
<h1>Test</h1>
</body>
</html>
Я расширил тестовый пример, чтобы попытаться выполнить встроенную таблицу стилей, и как Edge, так и Chrome могут это сделать, см. http://home.arcor.de/martin.honnen/xslt/test2016012407.xml, хотя Chrome по причинам, которые я не смог идентифицировать, не смог выполнить это в прослушивателе событий DOMContentLoaded
I есть. Но, похоже, это не проблема, связанная с использованием XSLT для вставки XSLT, когда я использую кнопку для запуска скрипта, выполняющего XSLT со встроенной таблицей стилей, он отлично работает в Chrome. Firefox, очевидно, с отсутствием поддержки для xsl:namespace-alias
, никогда не находит корневой элемент таблицы стилей, чтобы иметь некоторый код для подачи до XSLTProcessor
.