English | Français | Deutsch | Magyar | 中文 | >> Polski << ZVON > Tutorials > XSLT Tutorial
>> Strona 46 << | Poprzedni | Następny | Zawartość | Indeks elementu

Funkcja lang() zwraca wartość true lub false zależnie czy język węzła kontekstowego określonego przez atrybut xml:lang jest taki sam bądź też jest podjęzykiem języka określonego w argumencie. Język w kontekście danego węzła jest określony przez bezpośrednie użycie atrybutu xml:lang, a w przypadku jego braku - przez najbliższego przodka tego węzła, który taki atrybut posiada. W przypadku gdy żaden z przodków nie posiada atrybutu xsl:lang, funkcja lang() zwraca wartość false. Gdy atrybut zostanie odnaleziony, porównywana jest jego wartość z argumentem funkcji, przy czym ignorowana jest wielkość liter oraz pomijany jest ewentualny (dowolny) przyrostek w wartości atrybutu.

Arkusz stylów XSLT 1

Źródło XML
<source>

<P xml:lang="de">
     <text xml:lang="cs">a</text>
     <text xml:lang="en">and</text>
     <text>und</text>
</P>

</source>

Dane wyjściowe
<P>Czech: a</P>

<P>English: and</P>

<P>German: und</P>

Widok HTML

Czech: a

English: and

German: und

Arkusz stylów XSLT
<xsl:stylesheet version = '1.0'
     xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="text">
     <P>
          <xsl:choose>
               <xsl:when test='lang("cs")'>
                    <xsl:text>Czech: </xsl:text>
               </xsl:when>
               <xsl:when test='lang("en")'>
                    <xsl:text>English: </xsl:text>
               </xsl:when>
               <xsl:when test='lang("de")'>
                    <xsl:text>German: </xsl:text>
               </xsl:when>
          </xsl:choose>
          <xsl:value-of select="."/>
     </P>
</xsl:template>


</xsl:stylesheet>