0

是否可以使用 xslt 2.0为 html 根元素添加一个xml:lang或属性?lang<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">
4

1 回答 1

1

您将stylesheet元素(XSLT 样式表的根元素)误认为( htmlHTML 文档的根元素)。

您引用的属性是stylesheet元素允许的属性。请在此处查看规范的相关部分。

因此,请在您输出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 代码。

于 2014-01-31T16:38:43.290 回答