Вот что я пытаюсь открывать в Firefox 101.0.1:
<!DOCTYPE html>
<html>
<head>
<title>XSLT over XML both embedded</title>
</head>
<body onload="onload();">
<script id="xsl" language="application/xslt">
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:text disable-output-escaping="yes"><!DOCTYPE html></xsl:text>
<html>
<head>
<title>title test</title>
</head>
<body>
Article - <xsl:value-of select="/Article/Title"/>
<br />
Authors: <xsl:apply-templates select="/Article/Authors/Author"/>
</body>
</html>
</xsl:template>
<xsl:template match="Author">
- <xsl:value-of select="." />
</xsl:template>
</xsl:stylesheet>
</script>
<script id="xml" language="application/xml">
<?xml version="1.0" encoding="utf-8"?>
<Article>
<Title>My Article</Title>
<Authors>
<Author>Mr. Foo</Author>
<Author>Mr. Bar</Author>
</Authors>
<Body>This is my article text.</Body>
</Article>
</script>
<script language="javascript">
function onload() {
// Load XSL
var xsl_source = document.getElementById("xsl").textContent;
var xslParser = new DOMParser();
var xsl_doc = xslParser.parseFromString(xsl_source.trimStart(), "text/xml")
xsltProcessor = new XSLTProcessor();
xsltProcessor.importStylesheet(xsl_doc);
// Load XML
var xml_source = document.getElementById("xml").textContent;
var xmlParser = new DOMParser();
var xml_doc = xmlParser.parseFromString(xml_source.trimStart(), "application/xml");
// Transform
var html = xsltProcessor.transformToDocument( xml_doc ).documentElement.innerHTML;
var text = html.replace("<!DOCTYPE html>", "<!DOCTYPE html>");
// Update page
document.write(text);
}
</script>
</body>
</html>
Моя проблема в том, что не срабатывает disable-output-escaping=«yes» и мне приходится вызывать html.replace.
Что надо сделать, чтобы вызов replace не требовался?