是否可以使用xslt 2.0将xml:lang
或lang
属性放入html根元素<html>
?
问题是,xsl:stylesheet
唯一允许的属性是:id
,exclude-result-prefixes
,extension-element-prefixes
,version
,当然还有xmlns
}。任何xslt-processor都会忽略其他属性。
我希望有一种扩展元素<html>
的方法吗?
非常感谢。
代码(本例中为xhtml):
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tst="http://www.ma-buwi-fh.de"
xmlns="http://www.w3.org/1999/xhtml"
xml:lang="de">
<xsl:output method="xhtml"
encoding="UTF-8"
indent="yes"
doctype-public='-//W3C//DTD XHTML 1.1//EN'
doctype-system='http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'
/>
结果如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:tst="http://www.ma-buwi-fh.de"
xmlns="http://www.w3.org/1999/xhtml">
答案 0 :(得分:1)
您错误地将stylesheet
元素(XSLT样式表的根元素)误认为是html
(HTML文档的根元素)。
您引用的属性是stylesheet
元素允许的属性。请参阅规范here的相关部分。
因此,请在您输出的lang
元素上指定html
属性,而不是stylesheet
元素。
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:template match="/">
<html lang="EN">
<!--HTML content-->
</html>
</xsl:template>
</xsl:stylesheet>
如果您希望任何人诊断您的实际问题,您必须显示您的XSLT代码。