1
XSL样品XSL为XHTML严格DOCTYPE - META标签验证问题
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
>
<xsl:output method="html"/>
<xsl:template match="/Report">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
问题:我需要定义文档类型
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
在XSL
,但它不是让我把它放在那里,说无效的样式表。
我想:
<xsl:text disable-output-escaping='yes'><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"></xsl:text>
,但它这样做的正确方法?在线验证器甚至不会看到HTML呈现的行应该是有效的。
- 什么是添加DOCTYPE的正确方法?
- 我的
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
仍然应该在那里变换吗?
我有一个XSL样式表的XML数据文件,我转换成html。我想添加上面的内容,使其符合XHTML严格标准。任何意见,将不胜感激。谢谢!
期望输出
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title> Strict DTD XHTML Example </title>
</head>
<body>
<p>
Please Choose a Day:
<br />
<br />
<select name="day">
<option selected="selected">Monday</option>
<option>Tuesday</option>
<option>Wednesday</option>
</select>
</p>
</body>
</html>
产生的XHTML
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xml:lang="en" lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>OWASP ZAP Vulnerability Report</title>
</head>
<body>
</body>
</html>
问题使用:https://validator.w3.org/
- 的我ssue似乎是由
head
元素中的META
标签引起的,但我不明白为什么。
那么,如何阻止我的XSL添加META标记?
SOLUTION
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0"
>
<xsl:output method="xml" encoding="UTF-8" indent="yes" />
<xsl:template match="/Report">
<xsl:text disable-output-escaping='yes'><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
</xsl:text>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
更改xsl:output method
从HTML到XML。但回到另一个问题,有没有更好的方法来申报DOCTYPE
?