Puting 将 <html> xslt 2.0 归因于根元素



是否可以使用xslt 2.0将xml:langlang属性放置到html根元素<html>

问题是,xsl:stylesheet唯一允许的属性是:idexclude-result-prefixesextension-element-prefixesversion,当然还有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代码。

最新更新