| 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 ドキュメント |
|