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>