LINUX.ORG.RU

История изменений

Исправление 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 "">
по стандарту можно - https://stackoverflow.com/questions/67486840/does-an-empty-string-make-sense-...

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 "">
по стандарту можно - https://stackoverflow.com/questions/67486840/does-an-empty-string-make-sense-...

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 "">
по стандарту можно - https://stackoverflow.com/questions/67486840/does-an-empty-string-make-sense-...

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>