XSL은 템플릿 화시 기반입니다.
XML 데이터는 3 단계에서 "재사용"할 수 있습니다. 가장 기본적인 수준에서는 XML을 통해 <xsl:for-each />
을 사용할 수 있습니다.
참고 : XSL의 각 요소는 데이터를 반복하지 않으므로 데이터와 일치합니다. 또한 "내부"가 XML의 "컨텍스트"인 경우 (프로그래밍의 "범위"개념과 비슷 함)
for-each를 사용하고 다시 사용하는 예
<xsl:for-each select="/xml/data/here">
... do some stuff ...
</xsl:for-each>
<xsl:for-each select="/xml/data/here">
... do some DIFFERENT stuff ...
</xsl:for-each>
for-each 노드는 템플릿 노드 (재사용의 두 번째 레벨)에 포함됩니다. 템플릿 노드에는 일치 노드와 명명 된 노드의 두 가지 유형이 있습니다. 일치 템플릿 노드는 위에서 언급 한 for-each 노드와 같이 작동하지만 XSL 처리가 시작될 때 노드가 일치하면 템플릿 엔진에서 자동으로 호출됩니다. 일치 템플릿 노드를 명시 적으로 적용 할 수도 있습니다. 반면에 명명 된 템플릿 노드는 항상 명시 적으로 적용되며 동일한 함수로 생각할 수 있습니다. (루트 노드는 항상 존재하기 때문에) 항상가 호출 될 일치 템플릿의
예
<xsl:template match="/">
... do some stuff ...
</xsl:template>
다른 일치하는 템플릿을 명시 적으로
<xsl:template match="/">
<xsl:apply-templates select="xml/data/too" />
</xsl:template>
<xsl:template match="xml/data/too">
... do something ...
</xsl:template>
주의를 촉구하는 일치 템플릿 :에서 일치 템플릿이 작동하려면 XML 노드가 일치해야합니다. 일치하지 않으면 템플릿이 이 아니고이 호출됩니다.명명 된 템플릿
<xsl:template name="WriteOut">
... data with NO Context Here ...
</xsl:template>
아니면 일치하는 템플릿에서
<xsl:template match="/">
<xsl:call-template name="WriteOut" />
<xsl:template>
참고 명명 된 템플릿을 호출
예 : 당신이, 당신이 단지에서 템플릿을 일치하고 이름이 호출 어디 믹스 앤 매치 할 수 있습니다 어떤 컨텍스트인지 확인해야합니다.
템플릿 노드는 모두 XSL 스타일 시트에 보관되어 있고 에는 및 수입품 다양한 스타일 시트가 포함됩니다. 예를 들어 하나의 템플리트에 HTML 헤더 노드를 다루는 모든 템플리트와 다른 템플리트에서 HTML 본문 노드를 다루는 모든 템플리트를 보유 할 수 있습니다. 그런 다음 머리글 및 본문 스타일 시트를 모두 포함하는 하나의 스타일 시트를 만들 수 있습니다. 의
예 피 eaching, 템플릿을 통해 또는 관통 포함 스타일을 통한 데이터의 청크를 추출하는 방법은 세 가지가있다 결론적
<xsl:include href="header.xsl" />
노드를 포함한다.
"meme"? 나는 이것이 당신이 의미하는 것이라고 생각하는 것을 의미하지 않는다고 생각합니다 ... – annakata