是否可以使用xslt 2.0将xml:lang
或lang
属性放置到html根元素<html>
?
问题是,xsl:stylesheet
唯一允许的属性是:id
、exclude-result-prefixes
、extension-element-prefixes
、version
,当然还有xmlns
。任何xslt处理器都会忽略其他属性。
我希望一定有办法扩展元素<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">
您将stylesheet
元素(XSLT样式表的根元素)误认为是html
(HTML文档的根元素。
您引用的属性是stylesheet
元素所允许的属性。请参阅此处的规范相关部分。
因此,在输出的html
元素上指定lang
属性,而不是在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代码。