2012-11-01 11 views
5

ための要素タグ私は、このようにHTMLにXSLドキュメントを変換しています:XSLを使用した:HTML変換

<xsl:template match="/"> 
    <html> 
     <head> 
     <title>Title</title> 
     </head> 
     <body> 
     Blah-blah 
     </body> 
    </html> 
    </xsl:template> 

はそれが正しい方法ですか?または、おそらく、xsl:elementの方が良いですか?私はそのような変種で例を見なかった:

<xsl:template match="/"> 
    <xsl:element name="html"> 
     <xsl:element name="head"> 
     <xsl:element name="title"> 
      Title 
     </xsl:element> 
     </xsl:element> 
     <xsl:element name="body"> 
     Blah-blah 
     </xsl:element> 
    </xsl:element> 
    </xsl:template> 

どちらが正しいのですか?
よろしくお願いいたします。

答えて

4

リテラルの結果要素(最初のアプローチ)は、短く、入力しやすく、読みやすくなっています。私はxsl:elementを、入力データに基づいて要素名や名前空間を動的に計算したい場合にのみ使用することを提案します。

<xsl:template match="*"> 
    <xsl:element name="{translate(local-name(), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz')}"> 
    <xsl:apply-templates/> 
    </xsl:element> 
</xsl:template> 

その他のケースでは、最初のサンプルのようにリテラルの結果要素を使用します。しかし、結果に関しては正解も間違いもありません。どちらの変種も同じ結果ツリーを与えます。

+0

ああ、私はこの場合(要素名計算)については考えていませんでした。ありがとう、それは今私のためにはっきりしている! – bsiamionau

関連する問題