Книга: XSLT
lang()
lang()
Функция lang
проверяет, совпадает ли язык контекстного узла (определенный в атрибуте xml:lang
) с переданным ей языком. Функция применяется следующим образом:
boolean lang(string)
Функции нужно передать строку, определяющую язык в спецификации XML, как, например, «en» для английского, «de» для немецкого и «jp» для японского.
В следующем примере я проверяю, написан ли исходный документ на английском. Сначала я устанавливаю атрибут xml:lang
в planets.xml
в значение, соответствующее английскому языку:
<?xml version="1.0"?>
<?xml=stylesheet type="text/xml" href="planets.xsl"?>
<PLANETS xml:lang="en">
<PLANET>
<NAME>Mercury</NAME>
<MASS UNITS="(Earth = 1)">.0553</MASS>
<DAY UNITS="days">58.65</DAY>
<RADIUS UNITS="miles">1516</RADIUS>
<DENSITY UNITS="(Earth = 1)">.983</DENSITY>
<DISTANCE UNITS="million miles">43.4</DISTANCE><!--B перигелии-->
</PLANET>
.
.
.
Теперь я удостоверяюсь, что исходный документ на самом деле написан на английском, перед тем как применять к нему шаблоны:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/PLANETS">
<xsl:if test="lang('en')">
<HTML>
<HEAD>
<TITLE>
The Planets Table
</TITLE>
</HEAD>
<BODY>
<H1>
The Planets Table
</H1>
<TABLE BORDER="2">
<TR>
<TD>Name</TD>
<TD>Mass</TD>
<TD>Radius</TD>
<TD>Day</TD>
</TR>
<xsl:apply-templates/>
</TABLE>
</BODY>
</HTML>
</xsl:if>
</xsl:template>
<xsl:template match="PLANET">
<TR>
<TD><xsl:value-of select="NAME"/></TD>
<TD><xsl:apply-templates select="MASS"/></TD>
<TD><xsl:apply-templates select="RADIUS"/></TD>
<TD><xsl:apply-templates select="DAY"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
- 6.1 Program Description Language (PDL)
- Procedural Languages and Triggers
- Assembly language, the second generation language
- 3.1.20 Mixing mikroC with Assembly Language Statements
- 5.1.4 High-Level Language Simulators
- 7.2 mikroC Language SD Card Library Functions
- 8.6 mikroC Language USB Bus Library Functions
- 9.6.4.The Language Runtime System
- Assemblies and the Microsoft Intermediate Language (MSIL)
- Chapter 3 C# Language Foundations
- Chapter 14 Language Integrated Query (LINQ)
- Common Language Runtime