0

xslt 2.0を使用してhtmlルート要素にxml:langまたはlang属性を配置することは可能ですか?<html>

問題は、 、、、およびもちろん の属性のみが許可されてxsl:stylesheetいることです。他の属性は、xslt-processor によって無視されています。idexclude-result-prefixesextension-element-prefixesversionxmlns

<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 スタイルシートのルート要素) をhtml(HTML ドキュメントのルート要素) と間違えています。

stylesheet引用する属性は、要素に許可されているものです。ここで仕様の関連部分を参照してください。

したがって、要素ではなく、出力langする要素に属性を指定します。htmlstylesheet

<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 に答える