last 함수(XPath)
식 계산 컨텍스트의 크기와 같은 숫자를 반환합니다.
number last()
주의
다음은 각 <book> 요소의 마지막 <author> 자식을 찾습니다.
book/author[last()]
예
이 예제에서는 last() 함수를 사용하여 다음 XML 문서의 각 x 요소에 포함된 마지막 y 요소를 선택하는 방법을 보여 줍니다.
XML 파일(test.xml)
<?xml version="1.0"?>
<!DOCTYPE test [
<!ELEMENT test (x+)>
<!ELEMENT x (x+| y+)>
<!ATTLIST x
a ID #REQUIRED>
<!ELEMENT y ANY>
]>
<test>
<x a="a11">
<x a="a21">
<x a="a31">
<y>y31</y>
<y>y32</y>
</x>
</x>
</x>
<x a="a12">
<x a="a22">
<y>y21</y>
<y>y22</y>
</x>
</x>
<x a="a13">
<y>y11</y>
<y>y12</y>
</x>
<x a="a14">
<y>y03</y>
<y>y04</y>
</x>
</test>
XSLT 파일(test.xsl)
이 XSLT 스타일시트에서 굵은 글꼴로 표시한 명령에 유의하십시오.
<?xml version='1.0'?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" omit-xml-declaration="yes"/>
<!-- Suppress text nodes not covered in subsequent
template rule -->
<xsl:template match="text()"/>
<xsl:template match="*">
<xsl:element name="{name()}">
<xsl:apply-templates select="*|@*"/>
<xsl:if test="text()">
<xsl:value-of select="."/>
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template match="@*">
<xsl:attribute name="{name()}">
<xsl:value-of select="."/>
</xsl:attribute>
</xsl:template>
<xsl:template match="/test">
<xsl:apply-templates select="//x/y[last()]"/>
</xsl:template>
</xsl:stylesheet>
출력
XSLT 스타일시트를 위의 XML 파일에 적용할 경우 다음 노드 집합이 생성됩니다.
<y>y32</y>
<y>y22</y>
<y>y12</y>
<y>y04</y>