XSLT <xsl:apply-templates> 요소

정의와 사용법

<xsl:apply-templates> 요소는 현재 요소나 현재 요소의 자식 요소에 템플릿을 적용할 수 있습니다.

우리는 <xsl:apply-templates> 요소에 select 속성을 추가하면, 해당 속성의 값을 일치하는 자식 요소만 처리합니다. select 속성을 사용하여 자식 요소를 처리하는 순서를 지정할 수 있습니다.

문법

<xsl:apply-templates select="expression" mode="name">
  <!-- Content:(xsl:sort|xsl:with-param)* -->
</xsl:apply-templates>

속성

속성 설명
select 표현식 선택 사항입니다. 처리할 노드를 지정합니다. 별표(*)는 전체 노드 집합을 선택합니다. 이 속성을 생략하면 현재 노드의 모든 자식 노드를 선택합니다.
mode 이름 선택 사항입니다. 동일한 요소에 대해 여러 처리 방법이 정의되어 있다면, mode를 통해 구분할 수 있습니다.

예시

예제 1

각 title 요소를 h1 요소로 감싸기:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="title">
  <h1><xsl:apply-templates/></h1>
</xsl:template>
</xsl:stylesheet>

예제 2

文档中属于 message의 모든 자식 요소의 title 요소를 h1 요소로 감싸기:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="message">
  <h1><xsl:apply-templates select="title"/></h1>
</xsl:template>
</xsl:stylesheet>

예제 3

文档中 mode 属性设置为 "big" 的 message 所有子节点用 h1 元素包围:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0">
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="message">
  <h1><xsl:apply-templates select="*" mode="big"/></h1>
</xsl:template>
</xsl:stylesheet>