2012-11-01 12 views
5

sto trasformando documento XSL in html come questo:utilizzando xsl: tag html elemento di trasformazione

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

E 'modo giusto? O forse l'uso di xsl:element è meglio? Non ho visto esempi con tale variante:

<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> 

Quale variante è giusta?
Cordiali saluti.

risposta

4

Un elemento di risultato letterale (ovvero il primo approccio) è più breve, più facile da scrivere e più facile da leggere. Vorrei suggerire di utilizzare xsl:element solo nei casi in cui si desidera calcolare dinamicamente il nome dell'elemento e/o lo spazio dei nomi in base ai dati di input, ad es.

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

In altri casi, utilizzerei elementi di risultato letterali come nel primo campione. Ma non c'è giusto o sbagliato in termini di risultato, entrambe le varianti danno lo stesso albero dei risultati.

+0

Oh, non ho pensato a questo caso (calcolo del nome dell'elemento). Grazie, per me è più chiaro ora! – bsiamionau

Problemi correlati