last() 関数 | |
現在のコンテキストの最後のノードの位置を返します。この関数は、指定された要素が最後に現れたテンプレートを定義するか、指定されたノードが、それが属するノードセット内の最後のノードであるかどうかをテストするときに役立ちます。 | |
入力 | |
なし。 |
|
出力 | |
現在のコンテキストのノード数に等しい数値。たとえば、現在のコンテキストに 12 個の <li> ノードが含まれている場合、last() 関数は 12 を返します。 |
|
定義先 | |
XPath 4.1 節「ノードセット関数」 |
|
例 | |
last() 関数を使用して、リストの最後の項目を特別な方法で処理します。使用する XML ドキュメントは次のとおりです。 <?xml version="1.0"?> <list> <title>A few of my favorite albums</title> <listitem>A Love Supreme</listitem> <listitem>Beat Crazy</listitem> <listitem>Here Come the Warm Jets</listitem> <listitem>Kind of Blue</listitem> <listitem>London Calling</listitem> <listitem>Remain in Light</listitem> <listitem>The Joshua Tree</listitem> <listitem>The Indestructible Beat of Soweto</listitem> </list> リストの最後の <listitem> を異なる方法で処理するスタイルシートを次に示します。 <?xml version="1.0"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <html> <head> <title> <xsl:value-of select="/list/title"/> </title> </head> <body> <h1> <xsl:value-of select="/list/title"/> </h1> <ul> <xsl:for-each select="/list/listitem"> <xsl:choose> <xsl:when test="position()=last()"> <li><b>Last, but not least: </b><xsl:value-of select="."/></li> </xsl:when> <xsl:otherwise> <li><xsl:value-of select="."/></li> </xsl:otherwise> </xsl:choose> </xsl:for-each> </ul> </body> </html> </xsl:template> </xsl:stylesheet> このスタイルシートを使用して XML ドキュメントを変換した結果は次のとおりです。 <html> <head> <META http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>A few of my favorite albums</title> </head> <body> <h1>A few of my favorite albums</h1> <ul> <li>A Love Supreme</li> <li>Beat Crazy</li> <li>Here Come the Warm Jets</li> <li>Kind of Blue</li> <li>London Calling</li> <li>Remain in Light</li> <li>The Joshua Tree</li> <li> <b>Last, but not least: </b>The Indestructible Beat of Soweto</li> </ul> </body> </html> この HTML ファイルの表示を図 C-7 に示します。 生成された HTML ドキュメント |