2012-11-01 12 views
5

mam przekształcania dokumentów xsl html tak:Korzystanie elementem xsl: znacznik do transformacji html

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

Czy to właściwa droga? A może lepiej użyć numeru xsl:element? Nie widziałem przykładów z takim wariantem:

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

Który wariant jest odpowiedni?
Pozdrawiamy.

Odpowiedz

4

Dosłowny element wyniku (tj. Pierwsze podejście) jest krótszy, łatwiejszy do napisania i łatwiejszy do odczytania. Proponuję użyć xsl:element tylko w przypadkach, gdy chcesz dynamicznie obliczyć nazwę elementu i/lub przestrzeń nazw na podstawie danych wejściowych, np.

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

W innych przypadkach użyłbym dosłownie elementów wynikowych jak w pierwszej próbce. Ale nie ma tu dobra ani zła pod względem wyniku, oba warianty dają to samo drzewo wyników.

+0

Och, nie myślałem o tej sprawie (obliczanie nazwy elementu). Dziękuję, Teraz jest dla mnie bardziej zrozumiała! – bsiamionau

Powiązane problemy