lang()-Funktion | |
Diese Funktion bestimmt, ob ein bestimmter Sprach-String in der gleichen Sprache oder Sprachvariante wie der Kontextknoten gehalten ist. Sie richtet sich dabei nach dem Wert des Attributs xml:lang. | |
Eingaben | |
Ein String, der einen Sprachencode repräsentiert. Hat der Kontextknoten die Sprache xml:lang="en-us", so wird durch Aufruf der Funktion lang() mit einem der Argumentwerte en, EN oder en-us der Boolesche Wert true zurückgegeben. Wird lang() hingegen mit dem Wert en-gb aufgerufen, wird der Boolesche Wert false zurückgegeben. |
|
Ausgabe | |
Hat der Argument-String dieselbe Sprache oder Sprachvariante wie der Kontextknoten, liefert lang() den Booleschen Wert true. Besitzt der Kontextknoten kein xml:lang-Attribut, wird der xml:lang-Wert des nächsten Vorfahren verwendet. Wenn es jedoch kein solches Attribut gibt, liefert die Funktion lang() den Booleschen Wert false. Beim Vergleichen des Sprachencodes des Kontextknotens mit dem Argument-String wird die Groß-/Kleinschreibung von der Funktion lang() ignoriert. |
|
Definition | |
XPath-Abschnitt 4.3, Boolesche Funktionen |
|
Beispiel | |
Hier ein XML-Dokument, das Sprachencodes verwendet: <?xml version="1.0"?> <list xml:lang="en"> <title>Albums I've bought recently:</title> <listitem>The Sacred Art of Dub</listitem> <listitem>Only the Poor Man Feel It</listitem> <listitem>Excitable Boy</listitem> <listitem xml:lang="sw">Aki Special</listitem> <listitem xml:lang="en-gb">Combat Rock</listitem> <listitem xml:lang="zu">Talking Timbuktu</listitem> <listitem xml:lang="jz">The Birth of the Cool</listitem> </list> Hier das Stylesheet, das die Funktion lang() verwendet: <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:variable name="newline"> <xsl:text> </xsl:text> </xsl:variable> <xsl:template match="/"> <xsl:value-of select="$newline"/> <xsl:for-each select="list/listitem"> <xsl:choose> <xsl:when test="lang('EN')"> <xsl:text>Here's an English-language album: </xsl:text> </xsl:when> <xsl:otherwise> <xsl:text>-------> Here's some World music: </xsl:text> </xsl:otherwise> </xsl:choose> <xsl:value-of select="."/> <xsl:value-of select="$newline"/> </xsl:for-each> </xsl:template> </xsl:stylesheet> Hier schließlich die Ergebnisse: Here's an English-language album: The Sacred Art of Dub Here's an English-language album: Only the Poor Man Feel It Here's an English-language album: Excitable Boy -------> Here's some World music: Aki Special Here's an English-language album: Combat Rock -------> Here's some World music: Talking Timbuktu -------> Here's some World music: The Birth of the Cool |