Главная -> XML&... -> XSLT в примерах 
>> Страница 46 << | Назад | Вперед | Содержание | Указатель

Функция lang() возвращает "истину" или "ложь" в зависимости от того, совпадает ли язык контекстного узла с идентификатором языка, переданным ей в качестве параметра. Она действует следующим образом. Язык контекстного узла определяется значением атрибута xml:lang или, если контекстный узел не имеет такого атрибута, значением атрибута xml:lang ближайшего предка. Если ни один из предков контекстного узла не имеет атрибута xml:lang, то функция lang() возвращает "ложь". Если же такой атрибут имеется, то функция lang() возвращает "истину", если значения атрибута и аргумента совпадают независимо от регистра символов, или значение атрибута имеет суффикс, начинающийся с символа "-", и его часть до суффикса совпадает со значением аргумента независимо от регистра символов, и "ложь" в противном случае.

Преобразование 1

Исходный XML
<source>

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

</source>

Результат
<P>Czech: a</P>

<P>English: and</P>

<P>German: und</P>

Представление HTML

Czech: a

English: and

German: und

Преобразование 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>

Raleigh.ru Copyright © 2002