История изменений
Исправление Shushundr, (текущая версия) :
Что-то я делаю не так.
1) я обновил Firefox до версии 107.0.1, но теперь сообщение выдаётся на английском языке:
This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “
<!DOCTYPE html>
”.
2) я посмотрел, можно ли иметь HTML-документы с заголовком
<!DOCTYPE html SYSTEM "">
3) я попробовал вставить предложенную строчку, и убрать свой вывод, но что-то пошло не так...
Если я пишу между кавычками пробел <xsl:output method="html" doctype-system=" " />
, то строка DOCTYPE выводится, но пишется про Quirks mode.
А если я не пишу между кавычками пробел <xsl:output method="html" doctype-system="" />
, то строка DOCTYPE просто не выводится (и логично, что в результате пишется про Quirks mode).
Вот мой пруф:
<!DOCTYPE html>
<html>
<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:output method="html" doctype-system="" />
<xsl:template match="/">
<html><head><title>title from XSL</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 XLS
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 htmldoc = xsltProcessor.transformToDocument( xml_doc );
var html = new XMLSerializer().serializeToString( htmldoc );
var text = "<html><body><pre><xmp>" + html + "</xmp></pre></body></html>";
// Update page
document.write(text);
}
</script>
</body>
</html>
Исправление Shushundr, :
Что-то я делаю не так.
1) я обновил Firefox до версии 107.0.1, но теперь сообщение выдаётся на английском языке:
This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “
<!DOCTYPE html>
”.
2) я посмотрел, можно ли иметь HTML-документы с заголовком
<!DOCTYPE html SYSTEM "">
3) я попробовал вставить предложенную строчку, и убрать свой вывод, но что-то пошло не так...
Если я пишу между кавычками пробел <xsl:output method="html" doctype-system=" " />
, то строка DOCTYPE выводится, но пишется про Quirks mode.
А если я не пишу между кавычками пробел <xsl:output method="html" doctype-system=" " />
, то строка DOCTYPE просто не выводится (и логично, что в результате пишется про Quirks mode).
Вот мой пруф:
<!DOCTYPE html>
<html>
<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:output method="html" doctype-system="" />
<xsl:template match="/">
<html><head><title>title from XSL</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 XLS
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 htmldoc = xsltProcessor.transformToDocument( xml_doc );
var html = new XMLSerializer().serializeToString( htmldoc );
var text = "<html><body><pre><xmp>" + html + "</xmp></pre></body></html>";
// Update page
document.write(text);
}
</script>
</body>
</html>
Исходная версия Shushundr, :
Что-то я делаю не так.
1) я обновил Firefox до версии 107.0.1, но теперь сообщение выдаётся на английском языке:
This page is in Quirks Mode. Page layout may be impacted. For Standards Mode use “
<!DOCTYPE html>
”.
2) я посмотрел, можно ли иметь HTML-документы с заголвоком
<!DOCTYPE html SYSTEM "">
3) я попробовал вставить предложенную строчку, и убрать свой вывод, но что-то пошло не так...
Если я пишу между кавычками пробел <xsl:output method="html" doctype-system=" " />
, то строка DOCTYPE выводится, но пишется про Quirks mode.
А если я не пишу между кавычками пробел <xsl:output method="html" doctype-system=" " />
, то строка DOCTYPE просто не выводится (и логично, что в результате пишется про Quirks mode).
Вот мой пруф:
<!DOCTYPE html>
<html>
<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:output method="html" doctype-system="" />
<xsl:template match="/">
<html><head><title>title from XSL</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 XLS
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 htmldoc = xsltProcessor.transformToDocument( xml_doc );
var html = new XMLSerializer().serializeToString( htmldoc );
var text = "<html><body><pre><xmp>" + html + "</xmp></pre></body></html>";
// Update page
document.write(text);
}
</script>
</body>
</html>